区别 Python 中的列表, 元组, 字典, 集合
图片发自简书 App
一, 列表(list)
1. 可以用 list()函数或者方括号 [] 创建, 元素之间以逗号分隔.list1=list([1,2])#用 list()函数创建
list2=[1,3,'hello',3.5]#用方括号 [] 创建
2. 列表的元素可以包含不同的类型
list3=[1,"hello",3.14]
3. 使用索引来访问元素 list[-3]表示列表倒数第三个元素 list[0]与 list[-0]意义一样
print(list1[1])
输出: 2
4. 可切片 列表切片使用语法 list[start:end]来返回列表 list 的一个片段 这个片段是原列表从 start 到 end-1 的元素所构成的一个新列表.
print(list2[1:3])
输出:[3, 'hello']
5. 还可通过如下方法来创建:list4=[0]*10#创建一个长度为 100 的列表, 且每个列表的元素被初始化为 0 6. 列表的拼接和复制:
list1=list([1,2])
list2=[1,3,'hello',3.5]
list5=list1+list2
则 list5 中内容为[1,2,1,3,'hello',3.5]
List6=list1*3 则 list6 中内容为[1,2,1,2,1,2]
注意: list1*3 与 3*list1 相同
方法:
二, 元组
元组与列表非常相似, 不同的是元组是不可变的, 即元组一旦创建, 其中元素不可更改元组的访问和处理速度比列表快 如果需要定义的序列内容不会被修改那么最好使用元组, 另外使用元组使代码更加安全 特点
1. 可以用 tuple()函数或者圆括号 () 创建, 元素之间用逗号分隔.tuple1=()
tuple2=(1,2,3)
tuple3=(1,)#包含一个元素的元组语法上有些奇怪, 需要在元素值后面加上一个逗号创建
tuple4=tuple([1,2,3,4,5])#tuple()函数创建
2. 元组的元素不需要具有相同的类型
tuple5=(1,"helloworld",3.2)
3. 使用索引来访问元素
4. 可切片
5. 元素的值一旦创建就不可修改!!!!!(这是区别与列表的一个特征)
6. 元组的封装与序列拆封
1)封装
t=1,1,2,3,5 #将多个值自动封装到一个元组中 t 自动成为一个元组对象
2)序列拆封(封装的逆操作)tuple=(1,2,3)
x,y,z=tuple1#xyz 三个变量分别存储了整数 1,2,3
注意: 与元组封装不同的是, 拆封操着不仅可以应用于元组还可以应用于列表
方法:
三. 字典(Dictionary)
字典是另一种可变容器模型, 且可存储任意类型对象. 具有以下特点:
1. 元素由键 (key) 和值 (value) 组成 一一对应
2. 可以用 dict()函数或者花括号 {} 创建, 元素之间用逗号分隔, 键与值之间用冒号隔开dict1={
'name':'lin','age':21
}
dict2=dict([('lin','21'),('wang" ,'19')])
3. 键必须是唯一的, 但值则不必. 值可以取任何数据类型, 但键必须是不可变的, 如字符串, 数字或元组
4. 使用键 (key) 来访问元素print(dict1['name'])#访问元素
dict1[age]=11#修改元素值
方法:
四, 集合(set) 具有以下特点:
1. 可以用 set()函数或者方括号 {} 创建, 元素之间用逗号分隔.Set1={
1,2,3,4,5
}#用 {
}创建
Set2=([1,2,3,4,5])#用 set()函数创建
2. 与字典相比少了键
3. 不可索引, 不可切片
4. 不可以有重复元素, 但可以有不同类型的元素
Set3={1,2,3.21,"hello"}
5. 和列表推导式一样 也支持推导式
Set4={x for x in 'abreacdabre'if x not in 'abc'}
方法:
总结:
来源: http://www.jianshu.com/p/6d779849254c