dict
dict使用键-值(key-value)存储,具有很快的查找速度。
d = {'Danny':95,'Joy':75,'Bob':85}
输入d['Danny']可得到95.
dict通过给定的名字,在内部找出对应的存放成绩的内存地址,直接取出来,因此速度非常快。
将数据放入dict的方法,除了上述中初始化时指定外,还可以通过key放入:
d['Adam']=67
一个key只能对应一个value,当多次对一个key放入value时,后面的值会把前面的值冲掉。
key不存在时,dict会报错,避免错误的方法:
1.通过 in 判断key是否存在,False/True
'Thomas' in d
2.通过 get() ,若key不存在,会不返回数值,或自己指定的value
d.get('Thomas')
d.get('Thomas',-1)
删除一个key,用pop(key),此时对应的value也会被删除。
dict查找与插入的速度极快,但占用内存多,浪费大。
list查找和插入的时间随元素增加而增加,但占用空间小,浪费内存少
dict 的 key 是不可变对象!
set
set也是一组key的集合,但不存储value,由于key唯一,因此set中没有重复的key
要创建一个set,需要提供一个list作为输入集合:
s=set([1,2,3])
print(s)
{1,2,3}
[1,2,3]是一个list,而{1,2,3}表示s内部有1,2,3这三个元素。但不表示set是有序的。
重复元素在set中被自动过滤:
s=set([1,1,2,2,3,3])
print(s)
{1,2,3}
通过add(key)可以将元素key添加到set中,可以重复添加,但不会对set有影响。
通过remove(key)可以将元素key从set中删除。
set可以看成是数学上无序和无重复元素的集合。因此,set可以做交集、并集等操作:
s1 = set([1,2,3])
s2 = set([2,3,4])
s1 & s2 = {2,3}
s1 | s2 = {1,2,3,4}