字典是一組無序的集合褒翰,由key和vlaue組成,通過key映射你想要存儲或者獲取的內(nèi)容闪水, Python中的字典就像現(xiàn)實世界中的字典一樣报破,都可以通過索引找到對應(yīng)的值
如何創(chuàng)建字典
字典的創(chuàng)建方式和集合一樣,也是在{}中用逗號隔開每組元素蚤吹,不同的是字典中的每組元素有key:value組成例诀,其中key是唯一的而且是不可變類型,value可以是任意類型裁着,當然也可以重復繁涂。
# 定義一個空字典
a={}
print(type(a))
# 輸出 dict
# 定義一個字典
a={'cn':"China",'us':'United States of America'}
# 把列表轉(zhuǎn)為一個字典
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點結(jié)論
- 定義一個字典時出現(xiàn)重復的key不會報錯
- 相同的key會被后面的覆蓋
訪問字典中的元素
因為字典是無序的集合二驰,所以我們也不能通過索引和切片的方式訪問扔罪,但是我們可以通過字典中的key來訪問對應(yīng)的value
a={'a':'Apple','b':'banana'}
# 第一種方式
print(a['a'])
# 輸出 'Apple'
# 第二種方式
print(a.get('b'))
# 輸出 'banana'
# 通過key用上面兩種方式都可以對應(yīng)的vaule
# 但是第一種訪問不存在的key會報錯
print(a['c'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'c'
# 使用get不僅不會報錯,而且還可以設(shè)置默認值
print(a.get('c','沒找到c'))
# 輸出 沒找到c
更新或添加元素
字典添加桶雀、更新元素沒有像集合提供了很多種方法
a={'a':'Apple','b':'Banana'}
# 更新
a['b']='我要更新數(shù)據(jù)了'
print(a)
# 輸出 a={'a':'Apple','b':'我要更新數(shù)據(jù)了'}
# 使用update 添加
a.update({'c':'使用update','d':['1','2',True]})
print(a)
# 輸出 {'d': ['1', '2', True], 'a': 'Apple', 'c': '使用update', 'b': 'Banana'}
# 添加
a['e']='我是新增的數(shù)據(jù)'
print(a)
# 輸出 {'d': ['1', '2', True], 'e': '我是新增的數(shù)據(jù)', 'a': 'Apple', 'c': '使用update', 'b': 'Banana'}
# 字典是無序的集合 所以新增的數(shù)據(jù)位置在哪都一樣
刪除元素
訪問元素的時候我們通過key,刪除的時候我們也可以通過key來刪除矿酵,下面我來演示4種方法
a={'a': '1', 'b': '2', 'c': '3','d':'4','e':'5'}
# 使用內(nèi)置方法pop()
a.pop('a')
# 返回 '1'
print(a)
# 輸出 {'b': '2', 'c': '3','d':'4','e':'5'}
# 通過del刪除
del a['b']
# 輸出 {'c': '3','d':'4','e':'5'}
# 使用內(nèi)置方法popitem()
a.popitem()
# 返回('d', '4')
print(a)
# 輸出 {'e': '5', 'c': '3'}
# 使用內(nèi)置方法清空字典
a.clear()
print(a)
# 輸出 {}
上述4種方法都可以刪除元素唬复,我們來總結(jié)一下他們之間的區(qū)別
- pop()
通過key來刪除元素,而且會返回被刪除key對應(yīng)的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
總結(jié):要重點掌握字典key和value的關(guān)系,熟練運用字典中添加和更新操作辜腺,字典是python中重要數(shù)據(jù)類型休建,以后項目中使用的很廣泛