Python 2.7 學習筆記 字典(map)的使用


python中的字典,就是通常說的map,即 key/value集合的數據結構。

本文來介紹下在python下如何使用字典。 對於map這種數據結構能干什么,我們就不說了,這是一個常見的數據結構,我們假設大家都理解了。

我們重點講在python下如何使用它,其實就是熟悉相關的api方法了。

作為一個數據結構,使用它,不外乎包括創建(包括初始化)、增刪查改、以及其它一些操作。

一、創建

通過{}來標識一個字典,內容是鍵值對,形式就是典型的json對象的格式。如:

users = {}  #創建一個空的字典

users = {1:"jack",2:"tom"} #創建一個字典,包含兩個成員.

除上面這種方式外,還可以利用內置函數 dict 來創建字典。

 

二、插入和修改

舉例如下

>>> users={}
>>> users[3]="jame"
>>> print users
{3: 'jame'}
>>> users[4]="tom"
>>> users[10]="mike"
>>> print users
{10: 'mike', 3: 'jame', 4: 'tom'}
>>> users[4]="tom1"
>>> print users
{10: 'mike', 3: 'jame', 4: 'tom1'}


直接通過 字典變量名[key名]就可以添加新的key-value項。 注意上面[]的數字不是序號,字典沒有序號的概念,這里的數字是key值。

從上面例子可以看出,如果指定的key不存在,就會自動添加一個。
如果指定的key存在,就會用指定的值替換存在的key對應的value值。

 

三、刪除

1、清除字典中的所有項

字典對象提供了 clear方法,可以清楚字典中的所有項。

2、del 字典變量

舉例如下

>>> users={1:"tom"}
>>> newusers = users
>>> del users
>>> print users
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'users' is not defined
>>> print newusers
{1: 'tom'}

del是python中的內置語句,用於刪除變量的定義。從上面例子可以看出,它只是刪除變量定義,不會刪除變量指向的內容,當然如果這個內容沒有被其它變量引用,python會自動釋放。上面的例子,users和newusers指向同一個字典對象,即使我們刪除了users變量,對newusers是不影響的。
這點與clear方法不同,clear方法是刪除字典中的所有內容,如果多個變量指向同一字典,該字典內容被clear啊,顯然所有變量都能察覺到。

3、pop方法

先看例子

>>> data={"x":1,"y":2}
>>> print data
{'y': 2, 'x': 1}
>>> value = data.pop("x")
>>> print value
1
>>> print data
{'y': 2}
>>> value = data.pop("z")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'z'

pop方法是根據傳入的key值,返回對應的value值,並刪除字典中的該條目。
但如果指定的key對應的條目在字典中不存在,則程序會出現異常。

 

四、查詢

1、判斷key是否存在

在很多情況下,我們需要判斷一個key是否存在。代碼如:

>>> data={"x":1}
>>> if "x" in data:
...     print True
... else:
...     print False
...
True
>>> if "y" in data:
...     print True
... else:
...     print False
...
False

除了用 in 運算符來判斷某個key是否在字典中存在外,還可以用字典的方法 has_key(key)來檢查,效果是一樣的。

 

2、獲取指定key的value

 格式:字典變量[key值],舉例如

>>> data={"x":1}
>>> data["x"]
1
>>> data["y"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'y'

可以看出,如果key在字典中不存在,會報異常。還有一種更友好的方式,就是利用get方法,舉例如下:

>>> data={"x":1}
>>> print data.get("x")
1
>>> print data.get("y")
None

可以看出,即使key不存在,程序不會出異常,get會返回一個None值。
如果我們希望在獲取key對應的value時,如果key存在,則正常返回,如果key不存在,可以自動往字典中添加一個條目,並返回設置的條目的值,這可以用到setdefault方法,舉例如下:

>>> data={"x":1}
>>> print data.setdefault("x")
1
>>> print data.setdefault("x",3)
1
>>> print data
{'x': 1}
>>> print data.setdefault("y",2)
2
>>> print data
{'y': 2, 'x': 1}
>>> print data.setdefault("z")
None
>>> print data
{'y': 2, 'x': 1, 'z': None}

從上面代碼例子中,我們可以很清晰的看出setdefault方法的作用。

3、遍歷字典

很多場景下,我們需要遍歷整個字典,獲取到其中的每個條目信息。這可以這么來做,具體看代碼:

>>> data = {"x":1,"y":2,"z":3}
>>> for key in data:
...     print key
...     print data[key]

通過for循環,可以很方便的遍歷整個字典。

總結下,本文按照使用場景的方式介紹了下字典最常用的一些操作,能滿足絕大部分應用。除上面介紹的外,還有一些操作方法,不太常用,這里就不再介紹。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM