您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python中如何定義字典”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python中如何定義字典”吧!
Python中的字典由于是對象的集合屬于復(fù)合數(shù)據(jù)類型,類似于列表。
字典是 Python 對數(shù)據(jù)結(jié)構(gòu)的實現(xiàn),通常稱為關(guān)聯(lián)數(shù)組。字典由鍵值對的集合組成。每個鍵值對將鍵映射到其關(guān)聯(lián)的值。
可以通過將逗號分隔的鍵值對列表括在花括號 ( {} ) 中來定義字典。冒號 ( : ) 將每個鍵與其關(guān)聯(lián)的值分開。
d = { <key>: <value>, <key>: <value>, . . . <key>: <value> } # 定義一個Team >>> MLB_team = { ... 'Colorado' : 'Rockies', ... 'Boston' : 'Red Sox', ... 'Minnesota': 'Twins', ... 'Milwaukee': 'Brewers', ... 'Seattle' : 'Mariners' ... }
可以使用內(nèi)置dict()函數(shù)構(gòu)建字典。
d = dict([ (<key>, <value>), (<key>, <value), . . . (<key>, <value>) ]) # 定義一個Team >>> MLB_team = dict([ ... ('Colorado', 'Rockies'), ... ('Boston', 'Red Sox'), ... ('Minnesota', 'Twins'), ... ('Milwaukee', 'Brewers'), ... ('Seattle', 'Mariners') ... ]) # 另一種定義方式 >>> MLB_team = dict( ... Colorado='Rockies', ... Boston='Red Sox', ... Minnesota='Twins', ... Milwaukee='Brewers', ... Seattle='Mariners' ... )
字典內(nèi)容的顯示。
>>> type(MLB_team) <class 'dict'> >>> MLB_team {'Colorado': 'Rockies', 'Boston': 'Red Sox', 'Minnesota': 'Twins', 'Milwaukee': 'Brewers', 'Seattle': 'Mariners'}
字典中的條目按定義的順序顯示,使用索引無法指定訪問元素。
>>> MLB_team[1] Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> MLB_team[1] KeyError: 1
通過在方括號[]中指定對應(yīng)的鍵,從字典中檢索值。
>>> MLB_team['Minnesota'] 'Twins' >>> MLB_team['Colorado'] 'Rockies'
檢索值不在字典中則拋出異常。
>>> MLB_team['Toronto'] Traceback (most recent call last): File "<pyshell#19>", line 1, in <module> MLB_team['Toronto'] KeyError: 'Toronto'
現(xiàn)有字典添加數(shù)據(jù)只需分配新的鍵和值。
>>> MLB_team['Kansas City'] = 'Royals' >>> MLB_team {'Colorado': 'Rockies', 'Boston': 'Red Sox', 'Minnesota': 'Twins', 'Milwaukee': 'Brewers', 'Seattle': 'Mariners', 'Kansas City': 'Royals'}
更新數(shù)據(jù),只需為現(xiàn)有鍵分配一個新值。
>>> MLB_team['Seattle'] = 'Seahawks' >>> MLB_team {'Colorado': 'Rockies', 'Boston': 'Red Sox', 'Minnesota': 'Twins', 'Milwaukee': 'Brewers', 'Seattle': 'Seahawks', 'Kansas City': 'Royals'}
刪除數(shù)據(jù),使用 del 指定要刪除的鍵。
>>> del MLB_team['Seattle'] >>> MLB_team {'Colorado': 'Rockies', 'Boston': 'Red Sox', 'Minnesota': 'Twins', 'Milwaukee': 'Brewers', 'Kansas City': 'Royals'}
經(jīng)常遇見的一些錯誤做法。
>>> MLB_team['Toronto'] Traceback (most recent call last): File "<pyshell#8>", line 1, in <module> MLB_team['Toronto'] KeyError: 'Toronto' >>> MLB_team[1] Traceback (most recent call last): File "<pyshell#9>", line 1, in <module> MLB_team[1] KeyError: 1 # 數(shù)字作為鍵值使用 >>> d = {0: 'a', 1: 'b', 2: 'c', 3: 'd'} >>> d {0: 'a', 1: 'b', 2: 'c', 3: 'd'} >>> d[0] 'a' >>> d[2] 'c'
不能將字典視為列表。
>>> type(d) <class 'dict'> >>> d[-1] Traceback (most recent call last): File "<pyshell#30>", line 1, in <module> d[-1] KeyError: -1 >>> d[0:2] Traceback (most recent call last): File "<pyshell#31>", line 1, in <module> d[0:2] TypeError: unhashable type: 'slice' >>> d.append('e') Traceback (most recent call last): File "<pyshell#32>", line 1, in <module> d.append('e') AttributeError: 'dict' object has no attribute 'append'
創(chuàng)建新的空字典,然后通過一次添加一個新的鍵和值構(gòu)建。
>>> person = {} >>> type(person) <class 'dict'> >>> person['fname'] = 'Joe' >>> person['lname'] = 'Fonebone' >>> person['age'] = 51 >>> person['spouse'] = 'Edna' >>> person['children'] = ['Ralph', 'Betty', 'Joey'] >>> person['pets'] = {'dog': 'Fido', 'cat': 'Sox'} # 創(chuàng)建和訪問字典 >>> person {'fname': 'Joe', 'lname': 'Fonebone', 'age': 51, 'spouse': 'Edna', 'children': ['Ralph', 'Betty', 'Joey'], 'pets': {'dog': 'Fido', 'cat': 'Sox'}} >>> person['fname'] 'Joe' >>> person['age'] 51 >>> person['children'] ['Ralph', 'Betty', 'Joey'] # 檢索字典數(shù)據(jù) >>> person['children'][-1] 'Joey' >>> person['pets']['cat'] 'Sox'
構(gòu)建的字典中數(shù)據(jù)類型沒有明確的限制。
>>> foo = {42: 'aaa', 2.78: 'bbb', True: 'ccc'} >>> foo {42: 'aaa', 2.78: 'bbb', True: 'ccc'} >>> foo[42] 'aaa' >>> foo[2.78] 'bbb' >>> foo[True] 'ccc'
幾乎任何類型的值都可以用作 Python 中的字典鍵。
>>> foo = {42: 'aaa', 2.78: 'bbb', True: 'ccc'} >>> foo {42: 'aaa', 2.78: 'bbb', True: 'ccc'} # 可以使用類型和函數(shù)等內(nèi)置對象 >>> d = {int: 1, float: 2, bool: 3} >>> d {<class 'int'>: 1, <class 'float'>: 2, <class 'bool'>: 3} >>> d[float] 2 >>> d = {bin: 1, hex: 2, oct: 3} >>> d[oct] 3
同一字典內(nèi)重復(fù)的鍵無法添加,如果添加則對原鍵的值進(jìn)行替換。
>>> MLB_team = { ... 'Colorado' : 'Rockies', ... 'Boston' : 'Red Sox', ... 'Minnesota': 'Twins', ... 'Milwaukee': 'Brewers', ... 'Seattle' : 'Mariners' ... } >>> MLB_team['Minnesota'] = 'Timberwolves' >>> MLB_team {'Colorado': 'Rockies', 'Boston': 'Red Sox', 'Minnesota': 'Timberwolves', 'Milwaukee': 'Brewers', 'Seattle': 'Mariners'}
元組也可以是字典鍵,因為元組是不可變的。
>>> d = {(1, 1): 'a', (1, 2): 'b', (2, 1): 'c', (2, 2): 'd'} >>> d[(1,1)] 'a' >>> d[(2,1)] 'c'
字典的中的值是沒有任何限制的。
>>> d = {0: 'a', 1: 'a', 2: 'a', 3: 'a'} >>> d {0: 'a', 1: 'a', 2: 'a', 3: 'a'} >>> d[0] == d[1] == d[2] True
in and not in運算符返回True or False。
>>> MLB_team = { ... 'Colorado' : 'Rockies', ... 'Boston' : 'Red Sox', ... 'Minnesota': 'Twins', ... 'Milwaukee': 'Brewers', ... 'Seattle' : 'Mariners' ... } >>> 'Milwaukee' in MLB_team True >>> 'Toronto' in MLB_team False >>> 'Toronto' not in MLB_team True
也可以與短路評估一起使用。
>>> MLB_team['Toronto'] Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> MLB_team['Toronto'] KeyError: 'Toronto' >>> 'Toronto' in MLB_team and MLB_team['Toronto'] False
與字符串和列表一樣字典上也是有調(diào)用內(nèi)置方法。
# d.clear() 清空字典數(shù)據(jù) >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d {'a': 10, 'b': 20, 'c': 30} >>> d.clear() >>> d {} # d.get(<key>[, <default>]) 如果字典中存在鍵,則返回該鍵的值 >>> d = {'a': 10, 'b': 20, 'c': 30} >>> print(d.get('b')) 20 >>> print(d.get('z')) None # <key>未找到并且<default>指定了可選參數(shù) >>> print(d.get('z', -1)) -1 # d.items() 返回字典中的鍵值對列表 >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d {'a': 10, 'b': 20, 'c': 30} >>> list(d.items()) [('a', 10), ('b', 20), ('c', 30)] >>> list(d.items())[1][0] 'b' >>> list(d.items())[1][1] 20 # d.keys() 返回字典中的鍵列表 >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d {'a': 10, 'b': 20, 'c': 30} >>> list(d.keys()) ['a', 'b', 'c'] # d.values() 返回字典中的值列表 >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d {'a': 10, 'b': 20, 'c': 30} >>> list(d.values()) [10, 20, 30] # d.pop(<key>[, <default>]) 從字典中刪除一個鍵,如果存在并返回它的值 >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d.pop('b') 20 >>> d {'a': 10, 'c': 30} # 如果不存在則引發(fā)異常 >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d.pop('z') Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> d.pop('z') KeyError: 'z' # 如果指定默認(rèn)參數(shù)<default>則返回該值 >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d.pop('z', -1) -1 >>> d {'a': 10, 'b': 20, 'c': 30} # d.popitem() 從字典中刪除鍵值對 >>> d = {'a': 10, 'b': 20, 'c': 30} >>> d.popitem() ('c', 30) >>> d {'a': 10, 'b': 20} >>> d.popitem() ('b', 20) >>> d {'a': 10} # d為空會引發(fā)異常 >>> d = {} >>> d.popitem() Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> d.popitem() KeyError: 'popitem(): dictionary is empty' # d.update(<obj>) 將字典與另一個字典或可迭代的鍵值對合并 # (被替換鍵值).update(替換鍵值) >>> d1 = {'a': 10, 'b': 20, 'c': 30} >>> d2 = {'b': 200, 'd': 400} >>> d1.update(d2) >>> d1 {'a': 10, 'b': 200, 'c': 30, 'd': 400} # 使用元組更新 >>> d1 = {'a': 10, 'b': 20, 'c': 30} >>> d1.update([('b', 200), ('d', 400)]) >>> d1 {'a': 10, 'b': 200, 'c': 30, 'd': 400} # 指定關(guān)鍵字參數(shù) >>> d1 = {'a': 10, 'b': 20, 'c': 30} >>> d1.update(b=200, d=400) >>> d1 {'a': 10, 'b': 200, 'c': 30, 'd': 400}
感謝各位的閱讀,以上就是“Python中如何定義字典”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python中如何定義字典這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。