Python字典

1、字典

Python中的字典可以理解爲一種鍵值對的集合
鍵必須是唯一的,值可以重複
值可以取任何類型,但鍵必須是你不可變的類型,如字符串、數組或元組等
字典是可變的,因此可以增加、刪除、修改字典中的鍵值對

2、字典創建

字典中鍵和值用:分割,每個鍵值對用,分割,整個字典包含在一個{}中,格式如下:

d={key1:value1,key2:value2,key3:value3}

也可以使用dict()創建一個空字典,或者用dict()將一個包含雙值子序列的序列轉換成一個字典。

>>> d={'zhangsan':1,'lisi':2,'wangwu':3}
>>> d
{'zhangsan': 1, 'lisi': 2, 'wangwu': 3}
>>> d={}
>>> d
{}
>>> d=dict()
>>> d
{}
>>> s=[['a','b'],['c','d'],['e','f']]
>>> d=dict(s)
>>> d
{'a': 'b', 'c': 'd', 'e': 'f'}
>>>

3、訪問、添加和修改元素

使用類似字符串索引的方式來訪問一個元素,與字符串的區別在於索引爲字典的鍵,當索引不存在時,會報錯(KeyError)

>>> d={'a':1,'b':2,'c':3}
>>> d
{'a': 1, 'b': 2, 'c': 3}
>>> d['a']
1
>>> d['c']
3
>>> d[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 1
>>>

指定元素的鍵並賦予相應的值,若該鍵已經存在於字典中,那麼該鍵對應的舊值會被取代,如果該鍵不在字典中,那麼會將該鍵值對添加到字典

>>> d={'a':1,'b':2,'c':3}
>>> d['a']=10
>>> d['a']
10
>>> d
{'a': 10, 'b': 2, 'c': 3}
>>> d['d']=20
>>> d
{'a': 10, 'b': 2, 'c': 3, 'd': 20}
>>>

4、刪除字典元素

使用del刪除具有指定鍵的元素
具體語法爲:del d[key]

>>> d
{'a': 10, 'b': 2, 'c': 3, 'd': 20}
>>> del d['d']
>>> d
{'a': 10, 'b': 2, 'c': 3}
>>>

**注意:如果不加索引會將字典的引用直接刪除
         如果想要刪除字典中的所有元素,應使用clear()方法**

5、合併字典

使用update()可以將一個字典中的鍵值對複製到另一個字典中

>>> first={'a':1,'b':2,'c':3}
>>> first
{'a': 1, 'b': 2, 'c': 3}
>>> second={'c':4,'d':5}
>>> second
{'c': 4, 'd': 5}
>>> first.update(second)
>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> second
{'c': 4, 'd': 5}
>>>

注意:如果待添加的字典與待擴充的字典包含同樣的鍵,新歸入字典的值會取代原有的值

6、判斷鍵是否在字典中

使用 in 判斷一個鍵是否在字典中

>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> second
{'c': 4, 'd': 5}
>>> 'a' in first
True
>>> 5 in first
False
>>>

7、獲取字典中的所有鍵

使用keys()可以獲取字典中的所有鍵

>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> keys=first.keys()
>>> keys
dict_keys(['a', 'b', 'c', 'd'])
>>> type(first.keys())
<class 'dict_keys'>
>>> for x in list(first.keys()) :
...     print(x," : ",first[x])
...
a  :  1
b  :  2
c  :  4
d  :  5
>>>

注意:在Python2中keys()會返回一個列表,但在Python3中則返回一個dict_keys的對象,該對象是鍵的迭代形式,對於大型字典非常有用,因爲不需要時間和空間來創建返回的列表,當需要列表時可以使用list()轉換

8、獲取字典中的所有值

使用values()獲取字典中的所有值

>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> values=first.values()
>>> values
dict_values([1, 2, 4, 5])
>>> type(values)
<class 'dict_values'>
>>> for x in list(values) :
...     print(x,end=',')
...
1,2,4,5,

9、獲取所有鍵值對

使用items()獲取所有鍵值對

>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> items=first.items()
>>> items
dict_items([('a', 1), ('b', 2), ('c', 4), ('d', 5)])
>>> type(items)
<class 'dict_items'>
>>> for x in list(items) :
...     print(x)
...     type(x)
...
('a', 1)
<class 'tuple'>
('b', 2)
<class 'tuple'>
('c', 4)
<class 'tuple'>
('d', 5)
<class 'tuple'>
>>>

注意:每一個鍵值對以元組的形式返回

10、複製字典

由於字典是可變的,對字典內容進行修改會反映到與之相關聯的變量名上,有時將一個字典複製到一個新的字典中進行相關操作,防止修改原來的字典,使用copy()可以複製一個字典

>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> copy_first=first.copy()
>>> first['b']=100
>>> first
{'a': 1, 'b': 100, 'c': 4, 'd': 5}
>>> copy_first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章