天天看點

python資料分析-資料結構之字典

字典屬于映射類資料,由鍵和值來構成是一種可變容器模型,且可存儲任意類型對象。字典的每個鍵值對用冒号分割,每個鍵值對之間用逗号分割,用花括号 { }表示。字典資料的存儲也是無序的,可以通過通路key來得到value。

字典的建立

1、a = {1:‘a’,2:‘b’,3:‘c’,4:‘d’,5:‘e’} #注意,這裡key用數值型是可以的!項目中這種方法是比較常用的。

python資料分析-資料結構之字典

2、b = dict(((1,‘a’),(2,‘b’),(3,‘c’),(4,‘d’),(5,‘e’))) #這裡要注意dict()隻允許傳入一個參數,是以要把裡面的元素括起來,否則報錯。而且,這裡的key也是可以使用數值型的!

python資料分析-資料結構之字典

3、c = dict(a1=‘a’,a2=‘b’,a3=‘c’,a4=‘d’,a5=‘e’)

注意這裡我是用的a1、a2、a3、a4、a5作為key的,為什麼沒有直接用1、2、3、4、5呢?當然是不允許了,python規定當用等号這種方式的時候,key不能是數字類型(包括int和float),因為等号在這裡依舊是指派的意思(我猜的),把字元串指派給了常量再操作的時候會引起混亂(如果1 = a,2 = b,求1+2是等于3還是等于a+b就亂了,是以不行),于是我就想如果把1轉成字元串類型是否可以,結果證明也不行。。。我用圖檔給大家展示一下,如果有問題的話,歡迎大家提出。這是用數字作為key的報錯:SyntaxError: expression cannot contain assignment, perhaps you meant “==”?

python資料分析-資料結構之字典

字典的常用方法

1、通過len()函數來檢視字典的長度,得到的是字典内鍵值對的數量,一對鍵值對是一個長度。

python資料分析-資料結構之字典

2、通過dictname[key] = value的形式給字典添加資料。

python資料分析-資料結構之字典

3、通過dictname[key] = value的形式更新字典中的資料。

python資料分析-資料結構之字典

4、del dictname[key]來删除字典中的鍵值對。

python資料分析-資料結構之字典

5、dictname.pop[key]來删除字典中的鍵值對。

python資料分析-資料結構之字典

6、dictname.clear() #清空字典内的鍵值對

python資料分析-資料結構之字典

7、key in dictname #檢視某個鍵是否在字典中,存在傳回True,不存在傳回False。

python資料分析-資料結構之字典

8、檢視字典中對應鍵的值

(1)dictname[keyname]

(2)dictname.get(keyname)

對應差別是:第一種方法中,如果輸入的key不在字典中會報錯KeyError,在字典中傳回對應的值。第二種方法中,如果輸入的key不在字典中傳回None,在字典中則傳回對應值,可編輯文字知道key是否在字典中。

python資料分析-資料結構之字典

9、dictname.keys() #傳回字典中所有的key

python資料分析-資料結構之字典

10、dictname.values() #傳回字典中所有的key

python資料分析-資料結構之字典

11、dictname.items() #傳回字典中所有的鍵和值

python資料分析-資料結構之字典

字典的特性

1、字典中同一個鍵隻能出現一次,如果建立時同一個鍵被指派兩次,後一個值會被記住。

python資料分析-資料結構之字典

2、鍵必須不可變