接着上一章内容,继基本数据类型之后,本章进行组合数据类型的讲解

3.2. 组合数据类型

python中为了方便一部分相似数据的处理,提供了各种组合类型,常见的如列表、元组 python中的列表是可变序列,元组是不可变序列

3.2.1. 列表

列表的语法结构:通过一堆方括号包含起来的数据序列,可以存放重复数据 ```

name = ['张小凡', '碧瑶', '陆雪琪', '林惊羽']

因为列表本身也是对象,所以可以进行嵌套处理

user = [['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['陆雪琪', '青云门']]

列表数据的查看,可以通过索引/下标进行查看

> user
 [['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['陆雪琪', '青云门']]
> user[1]
['碧瑶', '鬼王宗']
> user[1][0]
'碧瑶'

列表中追加数据:append()

user.append(['金瓶儿', '合欢派']);
结果: [['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['陆雪琪', '青云门'], ['金瓶儿', '合欢派']]

列表中指定位置追加数据:insert()

user.insert(2, ['秦无炎', '万毒门']);
结果:[['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['秦无炎', '万毒门'], ['陆雪琪', '青云门'], ['金瓶儿', '合欢派']]

删除列表末尾的元素:pop()

user.pop();
结果:[['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['秦无炎', '万毒门'], ['陆雪琪', '青云门']]

删除列表中指定位置的元素:pop(index)

user.pop(2);
结果:[['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['陆雪琪', '青云门']]

将列表中指定位置的数据进行替换,直接给对应的索引赋值

user[2] = ['鬼先生', '鬼王宗']
结果:[['张小凡', '鬼王宗'], ['碧瑶', '鬼王宗'], ['鬼先生', '鬼王宗']]

``` 至此,常见的列表操作就基本介绍结束了,后续更加细致的操作手段和方式,在项目中需要进行深入的时候和熟练了。

3.2.2. 元组

元组在python中,其实是列表的一种特殊的形式,一旦声明创建就不允许改变。 语法结构:使用一对圆括号包含起来的一组数据,可以存放重复数据 ```

season = ('春' , '夏' , '秋' , '冬')

定义并给元组进行赋值之后,就可以像列表一样进行数据的查看了

season
结果: ('春' , '夏' , '秋' , '冬')
season[1]
结果:'夏'

``` 由于元组的数据一旦定义就不可更改,在一定程度上提高了代码的安全性,所以在程序设计开发的过程中,对于一部分不需要更改的数据如果可以定义成元组的,就不要定义成列表了。

注意:元组中如果存放的是其他的内容可变的元素的话,一定要注意此时的元组中对象的数据是可变的。 如: ```

# 定义了一个元组,此时元组中出了存放字符串,还存放了一个列表
tuple = ('张小凡', '林惊羽', ['陆雪琪', '青云门'])
tuple[2][0] = '碧瑶'
tuple[2][1] = '鬼王宗'
tuple
结果:('张小凡', '林惊羽', ['碧瑶', '鬼王宗'])

``` 执行过程如下图所示 元组中包含对象,修改对象数据的执行过程

3.2.3. 集合

python中,还提供了一种特殊的数据类型,集合Set,和列表类似,但是不能存储相同的数据;注意:集合set中存放数据是不能重复的,并且是没有存放顺序的,也就是没有下标的。

语法:使用一对大括号/花括号包含起来的一组数据 ```

h = {'集合元素'}
hreo = set(['将列表转换成集合'])

heros = {'寒冰艾希', '皎月戴安娜', '钢铁波比', '雪人努努', '迷失纳尔'};
heros
结果:{'寒冰艾希', '皎月戴安娜', '钢铁波比', '雪人努努', '迷失纳尔'};
heros[3] # 错误,集合中没有下标,是无序存放数据的

集合中增加数据:add()

heros.add('青钢影卡密尔');
heros
结果:{'寒冰艾希', '皎月戴安娜', '钢铁波比', '雪人努努', '迷失纳尔', '青钢影卡密尔'};

集合中删除数据:remove()

heros.remove("皎月戴安娜");
heros
结果:{'寒冰艾希', '钢铁波比', '雪人努努', '迷失纳尔', '青钢影卡密尔'};

```

3.2.4. 字典

为了方便数据在组合数据类型中的管理,python 还提供了一种特殊存储数据的组合数据类型:字典。通过key-value键值对的形式来存储数据,可以很方便的通过key来对value进行增删改查的操作 语法结构: ```

# 定义一个字典,每一个数据都是成对出现的 key:value
heros = {"皎月女神":"戴安娜", "虚空遁地者":"雷克赛", "沙漠皇帝":"阿兹尔", "无双剑姬":"菲奥娜"}
# 通过字典的名称使用字典
heros
结果:{"皎月女神":"戴安娜", "虚空遁地者":"雷克赛", "沙漠皇帝":"阿兹尔", "无双剑姬":"菲奥娜"}
# 通过字典中数据的key来获取对应的value数据
heros['皎月女神']
结果:'戴安娜'

查询字典中的数据,使用方括号或者get()函数

# 使用方括号的形式查询数据
heros['皎月女神']
结果:'戴安娜'
# 使用get()函数查询数据
heros.get('皎月女神')
结果:'戴安娜'

修改字典中指定的数据,通过给指定的key直接赋值就可以修改

heros['沙漠皇帝'] = '兹尔大帝'
heros.get('沙漠皇帝')
结果:'兹尔大帝'

删除字典中的数据,通过删除指定的key对应的数据即可删除

heros.pop('沙漠皇帝')
heros
结果:{'皎月女神': '戴安娜', '虚空遁地者': '雷克赛', '无双剑姬': '菲奥娜'}

```

以上四种数据类型的比较 元组Tuple是存放固定的数据 集合Set中的数据插入和遍历的时间,随数据增多而变慢 列表List中的数据插入和查询的时间,随数据的增多而变慢 字典Dict中的数据插入和查询的速度非常快,不会因为数据太多而变慢

元组、集合和列表占用内存较少,字典占用内存较多,字典是一种通过占用空间来换取操作速度的一种数据类型

4种组合数据类型部分的基本使用讲解完成,下一章单独讲解变量和运算符的操作