一、dict
其他语言中也称为map,使用键-值(key-value)存储
特点:
- 具有极快的查找速度:可以直接由key计算出value所在的内存地址,而list采用搜索的方式;dict付出的代价是内存占用大
- key值不能重复;
- 属于可变对象
修改dict
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}; # initialization dict['Age'] = 8; # update existing entry dict['School'] = "DPS School"; # Add new entry
key特性
-
不可重复;
-
键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行;
循环
for key in sorted(dictionary.keys()):
内置函数:
dict.keys()
以列表返回一个字典所有的键
# username,userinfo 相当于 key,value for username,userinfo in users.items():
dict.items()
以列表返回可遍历的(键, 值) 元组数组
二、set
是一组key的集合,但不存储value。set可以看成数学意义上的无序和无重复元素的集合
比如 { 1, 2, 3, 4 }
- set内的元素没有顺序;
- 存储key值,key值不可重复;
- set中只可放入不可变对象,不可以放入可变对象;
两个set可以做数学意义上的交集、并集等操作:
>>> s1 = set([1, 2, 3]) >>> s2 = set([2, 3, 4]) >>> s1 & s2 {2, 3} >>> s1 | s2 {1, 2, 3, 4}