字典、列表、元组
1 字典
2 Python內置的字典數據類型:全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)存儲,具有極快的查找速度
3
4 當將key-value放進dict時,dict會根據key算出value要存放地址,并將value放入該地址
5 當通過key從dict獲取value時,dict會根據key算出value存放的地址,然后訪問該地址獲取value
6 這個通過key計算位置的算法稱為哈希算法(Hash)
7
8 dict的一個key只能對應一個value,多次對一個key放入value,后面的值會覆蓋前面的值
9 dict內部存放的順序和key放入的順序是沒有關系的
10
11 dict和list的比較
12 list:1) 查找和插入的時間隨著元素的增加而增加
13 list總是從第一個元素開始查找,知只到找到目標元素為止
14 2) 內存占用大,內存浪費多
15
16 dict:1) 查找和插入的速度極快,不會隨著key的增加而變慢
17 dict先從字典索引查到value具體地址后,再根據具體地址找到value值
18 這樣即使dict里的數據很多也不會降低查詢速度
19 就像當你知道某個單詞在字典的具體哪一頁后,即使字典再厚,你總能一下子找到那個單詞
20 2) 內存占用小,內存浪費少
21
22 注意:1) dict是用空間來換取時間的一種方法,
23 2) dict的key必須是不可變對象
24 由于key是dict用來計算value的存儲地址的,如果key是經常變化的,則每次計算相同的key會得出不同的存儲地址,那dict內部就完全混亂了
25 因此要保證通過key計算得出的value的存儲地址的正確性,作為key的對象就不能變
26 在Python中,字符串、整數等都是不可變的,所以可放心地作為key,而list是可變的,就不能作為key
27
28 使用示例:
29
30 初始化dict
31 d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
32 print(d['Michael']) #輸出:Michael
33 print(d['tttt']) #輸出:key不存在會報錯,如:KeyError: 'tttt'
34
35 通過key放入dict
36 d['Adam'] = 67
37 print(d['Adam']) #輸出:67
38
39 判斷key是否存在
40 1 通過in判斷key是否存在
41 print('Thomas' in d) #輸出:False
42
43 2 通過dict提供的get()方法,如果key不存在,可以返回None,或者自定義value
44 print(d.get('Thomas')) #輸出:None,控制臺什么也不顯示
45 print(d.get('Thomas'),-1) #輸出:-1
46
47 刪除key-value鍵值對
48 print(d.pop('Bob')) #輸出:75, 返回該key對應的value
49
50 將list放入dict
51 d={[1,2,3]} #typeError:unhashable type:'list', 原因是list是可變的,不能作為key
?
轉載于:https://www.cnblogs.com/SP-0306/p/10882579.html
總結
- 上一篇: DoIP了解一下?
- 下一篇: EXCEL集成工具箱