一、Python列表(list)、元祖(tuple)、集合(set),和字典(dictionary)区别和联系
数据类型 | 列表(list) | 元祖(tuple) | 集合(set) | 字典(dictionary) |
---|---|---|---|---|
表示 | [] | () | {} | {} |
举例 | a_list = [1, True, ‘aa’] | a_tuple = (1, True, ‘aa’); t2 = (1,) | a_set = {1, True, ‘aa’}; s = set( [1, True, ‘aa’]) | a_dict = {‘name’: ‘xuan’, ‘age’: 21} |
是否有序 | 有序 | 有序 | 无序 | 无序 |
是否读写 | 读写 | 只读 | 读写 | 读写 |
空定义 | a_list = [] | a_tuple = () | a_set =set(); not_sure = {} 空字典 | a_dict = {} |
元素可修改 | a_list[0] = 23 | 否 | 否 | a_dict[‘age’] = 30 |
下标访问 | a_list[0] = 23 | a_tuple[0] | 否 | a_dict[‘age’] = 30 |
添加元素 | +、append、extend、insert | 不可添加 | add、update | a_dict[‘new_key’] = ‘value’ |
删除元素 | del、remove、pop()、pop(1)、clear | 不可删除 | discard、remove、pop、clear | pop、popitem、clear |
元素查找 | index、count、in | in | in | a_dict[‘key’] |
布尔真值 | 非空 | 非空 | 非空 | 非空 |
定义 | 列表(list)是有序的集合,可以存放不同数据类型的数据,并且list中的每个元素的都对应着一个索引来标记其位置,且索引从0开始。 | tuple与list类似,不同之处在于tuple中的元素不能进行修改。而且tuple使用小括号(),list使用方括号[]。 | dic字典是另一种可变的容器模型,且可存储任意类型对象。字典的每个键值(key:value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中 | set()函数是创建一个无序不重复元素集,可添加,删除数据,还可以计算交集、差集、并集等。python的集合类型和 其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素.集合对象还支持union(联合), intersection(交), difference(差)和sysmmetricdifference(对称差集)等数学运算,和我们初中数学学的集合的非常的相似。 |
二、字典dic、列表list、集合set、元祖tuple相互比较
比较 | 详情 |
---|---|
字典dict和列表list的比较 | dict的查找和插入的速度极快,不会随着key的增加而变慢。但是需要占用大量的内存,内存浪费多。相反,list查找和插入的时间随着元素的增加而增加。但是占用空间小,浪费内存很少。 |
字典dict和集合set比较 | 唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。 |
元祖tuple与列表list比较 | tuple与list 类似,不同之处在于tuple中的元素不能进行修改。而且tuple使用小括号(),list使用方括号[]。 |