python列表,元组,字典,集合的比较总结
这四个都是python中的序列,用于存放数据,他们区别总结如下:
列表list | 元组tuple | 字典dictionary | 集合set | |
---|---|---|---|---|
是否可变 | 可变 | 不可变 | 可变 | 可变 |
是否有序 | 有序 | 有序 | 无序 | 无序 |
元素是否重复 | 可重复 | 可重复 | 键不可重复 | 不可重复 |
定义符号 | [] | () | {key:value} | {} |
创建 | 1.[ ] 直接创建; 2.list() ; 3.列表生成式 | 1.()直接创建; 2.tuple() | 1.{}直接创建2.dict(key1=value1 3.dict(zip(list1,list2)) | 1.{}直接创建 2.set() |
删除 | 1.del删除元素或者列表2.list.remove(value)3.list.pop() | 1.del删除元素或元组 | 1.del删除元素或字典 | 1.del删除元素或集合2.set.remove()3.set.pop()4.set.clear() |
修改插入 | 1.append()2.insert()3.+ 4.extend() | 不可修改 | 1.dict[key]=value | s.add() |
访问,遍历 | 1.索引访问;2.for循环遍历;for i in listfor index,i in enumerate(list) | 1.索引访问;2.for循环遍历 | 1.键访问2.get()访问 3.for key,value in dict.items()for key in dict.keys()for value in dict.values() | for循环遍历 |
生成式 | [i*i for i in list1]返回列表 | (i*i for i in list1)返回生成器对象,通过for和next()访问 | dict={i:j for i,j in zip(list1,list2)};dict={i*2:2 for i in range(1,10)} | 交集&,并集,差集- |
切片 | 支持切片 | 支持切片 | 不支持切片 | 不支持切片 |
索引 | 支持索引 | 支持索引 | 不支持索引 | 不支持索引 |
+,* | 支持 | 支持 | 不支持 | 不支持 |
其他 | 不能作为字典的键 | 可以作为字典的键 |