1. 程式人生 > >python3中的組——列表、字典、元組(2)

python3中的組——列表、字典、元組(2)

上一次說完列表,這一次說下字典(dict)。

字典的格式前面兩篇文章都有提到,就是用{}括起來的與關鍵詞(key)相對應的資料值(value),就像是詞典中每一個字對應一個註釋。具體格式如下:

#數字#
>>> {1:99,2:98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: 99, 2: 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}

#字串#
{'1':'99','2':'98','3':'97','4':'96','5':'95','6':'94','7':'93','8':'92','9':'91'}
{'1': '99', '2': '98', '3': '97', '4': '96', '5': '95', '6': '94', '7': '93', '8': '92', '9': '91'}

字典和集合一樣是無序的。字典只能通過key來訪問value,而如果一個字典裡有多個重複的key,那麼字典會預設儲存最後一個value值。如下:

>>> {1:99,1:98,1:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}

而如果一個是字串的1一個是數字的1,字典也不會把他們認為是同一個key。


>>> {1:99,'1':98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}[1]
99

>>> {1:99,'1':98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}['1']
98

字典的資料值(value)可以是python中的所有資料型別,比如列表、字典、元組、集合、字元等等。

#在字典中巢狀字典#
>>> {1:{1:2},3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: {1: 2}, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}

#在字典中巢狀集合#
>>> {1:{1,2,3},3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: {1, 2, 3}, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}

#在字典中巢狀列表#
>>> {1:[1,2,3],3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: [1, 2, 3], 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}

#在字典中巢狀元組#
>>> {1:(1,2,3),3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: (1, 2, 3), 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}

而字典的關鍵詞(key)則必須是python中不可變的資料型別,比如str、int、tuple(tuple的特點就是資料型別是無法更改的)等等。

>>> {1:98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{1: 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}

>>> {'1':98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{'1': 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}

>>> {(1,2,3):98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}
{(1, 2, 3): 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92, 9: 91}

字典也是和列表一樣可以進行查增刪改。

訪問/讀取直接輸入key即可。

#這裡的[1]不是指數字1,而是字典中的key[1]#
>>> {1:98,3:97,4:96,5:95,6:94,7:93,8:92,9:91}[1]
98

增加資料不像列表一樣,字典不能使用+,而是需要通過變數跳轉。

>>> first = {1:98,3:97,4:96,5:95,6:94,7:93,}
>>> first[8] = 92
>>> print (first)
{1: 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93, 8: 92}

修改則和增加差不多。

>>> first = {1:98,3:97,4:96,5:95,6:94,7:93,}
>>> first[7] = 92
>>> print (first)
{1: 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 92}

至於刪除則是使用del語句。

#del刪除的值永遠消失了#
>>> first = {1:98,3:97,4:96,5:95,6:94,7:93,}
>>> del first[7]
>>> print (first)
{1: 98, 3: 97, 4: 96, 5: 95, 6: 94}

關於定義空字典,則是直接使用空的{}即可。

>>> type({})
<class 'dict'>

最後,關於字典還有一個特性,就是可以換行寫程式碼,不用加任何的轉義字元,只需要在,後面按回車便會自動縮排(只有有縮排才有效)。

>>> {1:98,
         3:97,
         4:96,
         5:95,
         6:94,
         7:93}
{1: 98, 3: 97, 4: 96, 5: 95, 6: 94, 7: 93}