Python的基本數據類型--Dictionary

Python的基本數據類型--Dictionary

來自專欄沐碼人

字典是一組無序的集合,由key和vlaue組成,通過key映射你想要存儲或者獲取的內容, Python中的字典就像現實世界中的字典一樣,都可以通過索引找到對應的值

Photo by Aaron Burden on Unsplash

如何創建字典

字典的創建方式和集合一樣,也是在{}中用逗號隔開每組元素,不同的是字典中的每組元素有key:value組成,其中key是唯一的而且是不可變類型,value可以是任意類型,當然也可以重複。

# 定義一個空字典a={}print(type(a))# 輸出 dict# 定義一個字典a={cn:"China",us:United States of America}# 把列錶轉為一個字典a=dict([(a,apple),(b,banana)])print(a)# 輸出 {a: apple, b: banana}

前面說過字典中的key必須是唯一的,那如果我們定義重複的key會怎樣呢?下面通過代碼來演示一下

a={a:Apple,a:banana}print(a)# 輸出 {a: banana}b=dict([(1,key是1),(1,key是2),(1,key是3)])print(b)# 輸出{1: key是3}

通過上面的案例我們可以得出2點結論

  • 定義一個字典時出現重複的key不會報錯
  • 相同的key會被後面的覆蓋

訪問字典中的元素

因為字典是無序的集合,所以我們也不能通過索引和切片的方式訪問,但是我們可以通過字典中的key來訪問對應的value

a={a:Apple,b:banana}# 第一種方式print(a[a])# 輸出 Apple# 第二種方式print(a.get(b))# 輸出 banana# 通過key用上面兩種方式都可以對應的vaule# 但是第一種訪問不存在的key會報錯print(a[c])Traceback (most recent call last): File "<stdin>", line 1, in <module>KeyError: c# 使用get不僅不會報錯,而且還可以設置默認值print(a.get(c,沒找到c))# 輸出 沒找到c

更新或添加元素

字典添加、更新元素沒有像集合提供了很多種方法

a={a:Apple,b:Banana}# 更新 a[b]=我要更新數據了print(a)# 輸出 a={a:Apple,b:我要更新數據了}# 使用update 添加a.update({c:使用update,d:[1,2,True]})print(a)# 輸出 {d: [1, 2, True], a: Apple, c: 使用update, b: Banana}# 添加a[e]=我是新增的數據print(a)# 輸出 {d: [1, 2, True], e: 我是新增的數據, a: Apple, c: 使用update, b: Banana}# 字典是無序的集合 所以新增的數據位置在哪都一樣

刪除元素

訪問元素的時候我們通過key,刪除的時候我們也可以通過key來刪除,下面我來演示4種方法

a={a: 1, b: 2, c: 3,d:4,e:5}# 使用內置方法pop()a.pop(a)# 返回 1print(a)# 輸出 {b: 2, c: 3,d:4,e:5}# 通過del刪除del a[b]# 輸出 {c: 3,d:4,e:5}# 使用內置方法popitem()a.popitem()# 返回(d, 4)print(a)# 輸出 {e: 5, c: 3}# 使用內置方法清空字典a.clear()print(a)# 輸出 {}

上述4種方法都可以刪除元素,我們來總結一下他們之間的區別

  • pop()

通過key來刪除元素,而且會返回被刪除key對應的value

  • del a[key]

也是通過key來刪除元素,但是不會返回值

  • popitem()

隨機刪除一對元素,且會返回被刪除key和value組成的元組

  • clear()

清空字典

字典的一些基本操作

獲取字典中所有的key

a={a:1,b:2,c:3}print(list(a.keys()))# 輸出[a,b,c]

獲取字典中所有的value

a={a:1,b:2,c:3}print(list(a.values()))# 輸出[1,2,3]

獲取字典的長度

a={a:1,b:2,c:3}print(len(a))# 輸出 3

總結:要重點掌握字典key和value的關係,熟練運用字典中添加和更新操作,字典是python中重要數據類型,以後項目中使用的很廣泛

推薦閱讀:

go語言20180812
C/C++進階為大神鋪路必備,C語言指針用法!
設計模式之Facade
面向對象六大基本原則

TAG:Python | 數據類型 | 編程語言 |