① python中的字典是什麼
字典(Dictionary)
字典也是Python語言中經常使用的一種數據類型。跟列表類似,字典是另外一種可存儲任意類型的數據,並且字典儲存的數據也是可以修改的。
不同於列表的是,字典每個基本元素都包括兩個部分:鍵(key) 和 鍵對應的值(value)。
鍵和值之間用冒號(:)分割,每對元素之間用逗號(,)分割,整個字典的數據在大括弧{}中,格式如下所示:
在字典中,鍵的內容是不可重復的。鍵為不可變數據類型,值可以是任何數據類型。在這里,鍵只支持字元串類型。
字典最大的優勢就是能在海量數據下利用「鍵」快速查找出想要的值,當有很多數據需要存儲的時候,我們給每個值都打個標簽,也就是「鍵」;想要調用這個值時,字典能夠利用這個標簽快速幫我們找到它。但是如果標簽重復了,字典不知道哪個值才是對的,就會報錯哦~
列表是根據排序來記錄每項的值,但是字典是沒有順序的,所以同一字典,每次列印出的排序可能是不同的。「鍵」才是調用字典的關鍵元素。
字典是基礎的數據類型,所以變數也可以被賦值為字典。
② python 列表內有字典怎麼使用
Python字典是另一種可變容器模型,且可存儲任意類型對象,如字元串、數字、元組等其他容器模型。
一、創建字典
字典由鍵和對應值成對組成。字典也被稱作關聯數組或哈希表。基本語法如下:
復制代碼代碼如下:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
也可如此創建字典:
復制代碼代碼如下:
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
注意:
每個鍵與值用冒號隔開(:),每對用逗號,每對用逗號分割,整體放在花括弧中({})。
鍵必須獨一無二,但值則不必。
值可以取任何數據類型,但必須是不可變的,如字元串,數或元組。
二、訪問字典里的值
把相應的鍵放入熟悉的方括弧,如下實例:
復制代碼代碼如下:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];
#以上實例輸出結果:
#dict['Name']: Zara
#dict['Age']: 7
如果用字典里沒有的鍵訪問數據,會輸出錯誤如下:
復制代碼代碼如下:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Alice']: ", dict['Alice'];
#以上實例輸出結果:
#dict['Zara']:
#Traceback (most recent call last):
# File "test.py", line 4, in <mole>
# print "dict['Alice']: ", dict['Alice'];
#KeyError: 'Alice'[/code]
三、修改字典
向字典添加新內容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對如下實例:
復制代碼代碼如下:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
#以上實例輸出結果:
#dict['Age']: 8
#dict['School']: DPS School
四、刪除字典元素
能刪單一的元素也能清空字典,清空只需一項操作。
顯示刪除一個字典用del命令,如下實例:
復制代碼代碼如下:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
del dict['Name']; # 刪除鍵是'Name'的條目
dict.clear(); # 清空詞典所有條目
del dict ; # 刪除詞典
print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];
#但這會引發一個異常,因為用del後字典不再存在:
dict['Age']:
#Traceback (most recent call last):
# File "test.py", line 8, in <mole>
# print "dict['Age']: ", dict['Age'];
#TypeError: 'type' object is unsubscriptable
五、字典鍵的特性
字典值可以沒有限制地取任何python對象,既可以是標準的對象,也可以是用戶定義的,但鍵不行。
兩個重要的點需要記住:
1)不允許同一個鍵出現兩次。創建時如果同一個鍵被賦值兩次,後一個值會被記住,如下實例:
復制代碼代碼如下:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};
print "dict['Name']: ", dict['Name'];
#以上實例輸出結果:
#dict['Name']: Manni
2)鍵必須不可變,所以可以用數,字元串或元組充當,所以用列表就不行,如下實例:
復制代碼代碼如下:
#!/usr/bin/python
dict = {['Name']: 'Zara', 'Age': 7};
print "dict['Name']: ", dict['Name'];
#以上實例輸出結果:
#Traceback (most recent call last):
# File "test.py", line 3, in <mole>
# dict = {['Name']: 'Zara', 'Age': 7};
#TypeError: list objects are unhashable
六、字典內置函數&方法
Python字典包含了以下內置函數:
1、cmp(dict1, dict2):比較兩個字典元素。
2、len(dict):計算字典元素個數,即鍵的總數。
3、str(dict):輸出字典可列印的字元串表示。
4、type(variable):返回輸入的變數類型,如果變數是字典就返回字典類型。
Python字典包含了以下內置方法:
1、radiansdict.clear():刪除字典內所有元素
2、radiansdict.():返回一個字典的淺復制
3、radiansdict.fromkeys():創建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
4、radiansdict.get(key, default=None):返回指定鍵的值,如果值不在字典中返回default值
5、radiansdict.has_key(key):如果鍵在字典dict里返回true,否則返回false
6、radiansdict.items():以列表返回可遍歷的(鍵, 值) 元組數組
7、radiansdict.keys():以列表返回一個字典所有的鍵
8、radiansdict.setdefault(key, default=None):和get()類似, 但如果鍵不已經存在於字典中,將會添加鍵並將值設為default
9、radiansdict.update(dict2):把字典dict2的鍵/值對更新到dict里
10、radiansdict.values():以列表返回字典中的所有值
③ python字典中的元素有何特點
key為鍵,value為值,一個鍵值為一個項。1.鍵與值之間用冒號分開,即字元串形式。項與項用逗號分開,且都須是英文狀態的符號。2.作為key的元素必須是不可變的,value不唯一,即key與value是一對多關系。3.無序性。
補充一下:dict查找元素速度比較快,查找效率較高,但占內存比較大。
④ python 20:取字典中的全部元素的方法
一共三個,分別取岩正所有的鍵(keys()),值(values())和鍵值對(items())。
返回的類似於列表,但不是列表。其類型分別為dict_keys,dict_values和dict_items。
>>>count={'a': 1, 'b': 0, 'c': 99, 'd': 0}
>>> s=count.keys()
>>> s
dict_keys(['a', 'b', 'c', 'd'])
>>> t=count.values()
>>> t
dict_values([1, 0, 99, 0])
>>> x=count.items()
>>> x
dict_items([('a', 1), ('b', 0), ('c', 99), ('d', 0)])
取出後,它們都可以直接用於遍歷,如:
for k in count.keys():
for v in count.values():
for k,v in count.items():
它們也都可以御畝通過list()函數轉換為列表使用:
>>> ls=list(s)
>>> ls
['a', 'b', 'c', 'd']
>>粗拆悔> lt=list(t)
>>> lt
[1, 0, 99, 0]
>>> lx=list(x)
>>> lx
[('a', 1), ('b', 0), ('c', 99), ('d', 0)]