dict是字典dictionary的縮寫,他存放的是鍵值對key/value,用花括弧表示,格式為d={'micheal':99,'jack':88} 當我們訪問的時候直接print(d['micheal'])#輸出相應的99; 可以給dict複製並且會覆蓋掉原來的value,但是如果key沒有對應 ...
dict是字典dictionary的縮寫,他存放的是鍵值對key/value,用花括弧表示,格式為d={'micheal':99,'jack':88}
當我們訪問的時候直接print(d['micheal'])#輸出相應的99;
可以給dict複製並且會覆蓋掉原來的value,但是如果key沒有對應的value就會報錯,
通過dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:print(d.get('tomash'))#會輸出none
在dict中如果有重覆的key,以前面的key為準,並自動過濾掉後面的key,比如
d={'micheal':66,'micheal':99,'jack':88};print(d)
d={'micheal':99,'micheal':66,'jack':88} ;print(d)
如果要刪除一個key其對應的value也會刪除,pop(key)
[cp]和list比較,dict有以下幾個特點:
- 查找和插入的速度極快,不會隨著key的增加而變慢;
- 需要占用大量的記憶體,記憶體浪費多。
而list相反:
- 查找和插入的時間隨著元素的增加而增加;
- 占用空間小,浪費記憶體很少。所以,dict是用空間來換取時間的一種方法[cp]
set是一個無順序的數據集合,要求以list參數傳入,並且只能是一個list參數,如果有兩個參數會報錯,他不同於dict是沒有key對應的value,有重覆的元素會自動過濾掉,
通過add(key)方法添加set元素,通過remove(key)方法刪除元素;
既然set是一個集合那麼兩個set集合就可以做交集,並集,
s1=set([1,2,3]);
s2=set([2,3,4]);
print(s1&s2);
print(s1|s2);
tuple因為是不可變的所以可以作為set和dict的key;但是如果tuple裡面包含了list,例如:
a=[2,3]#list
d=('h',('a',a))#tuple
dict={d:'value'}#dict
就不可以哈希化,也就是說會報錯,不可以作為參數;