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}