下面小編就整理了在編程中,比較常用的【字典】入門到進階的用法。
Python基礎語法 - 專欄鏈接
目錄
4. 字典常用方法:keys()、values()、items()、get()
1. 概念
字典 也是 Python 中最常用的數據類型之一。
列表 和 字典 都是對象集合。既然都有了 列表,爲何還需要 字典 呢?我們來通過一個例子解答這個疑問。
場景假設:統計語文考試的同學名 和 考試分數。
列表統計:需要兩個列表分別存放姓名和分數。
scores = [60,70,80,90]
students = ['小王','小剛','小紅','小明']
字典統計:姓名爲字典的鍵,分數爲字典的值存放於字典中。
scores = {
'小王':60,
'小剛':70,
'小紅':80,
'小明':90
}
# 如果我們需要查詢小明的成績,可以直接字典名scores搭配鍵['小明']取值
print(scores['小明'])
# 90
根據不同的需求,合理使用 列表 和 字典 能夠讓我們的程序代碼更簡潔更易懂。
2. 字典與列表的相同處、不同處
相同處:
1. 都有定義名稱。
2. 都要用=賦值。
3. 用逗號作爲元素間的分隔符。
不同處:
1. 列表外層用的是中括號[ ],字典的外層是大括號{ }
2. 列表中的元素是用英文冒號連接的獨立的,而字典的元素是由一個個鍵值對組成的,用英文冒號連接。如'小明':90,其中我們把'小明'叫鍵(key),90叫值(value)。
需要注意的是,字典中的 鍵 是 唯一的,如果字典中有兩個相同的 鍵,Python 只會保留後面那個。而 值 可以有相同任意類型的值。
3. 修改、添加、刪除字典元素
scores = {
'小王':60,
'小剛':70,
'小紅':80,
'小明':90
}
# 修改:字典名scores+存在的鍵['小王'],與之賦值就行
scores['小王'] = 65
print(scores)
# {'小王': 65, '小剛': 70, '小紅': 80, '小明': 90}
# 添加:字典名scores+不存在的鍵['小張'],與之賦值就行
scores['小張'] = 100
print(scores)
# {'小王': 65, '小剛': 70, '小紅': 80, '小明': 90, '小張': 100}
# 刪除:del+字典名+存在的鍵['小王']
del scores['小王']
print(scores)
# {'小剛': 70, '小紅': 80, '小明': 90, '小張': 100}
4. 字典常用方法:keys()、values()、items()、get()
keys():用於獲取字典中所有的 鍵。
scores = {
'小王':60,
'小剛':70,
'小紅':80,
'小明':90
}
print(scores.keys())
# dict_keys(['小王', '小剛', '小紅', '小明'])
# 拓展:如果你想取字典scores的鍵,該怎麼辦?
# 此處只介紹了方法一,還有更方便的方法,items()方法那
print(type(scores.keys()))
# 注意keys()方法得到的是<class 'dict_keys'>類型,我們需要轉換爲列表類型(此時可使用:list()轉換)。
for key in list(scores.keys()):
print(key)
# 小王
# 小剛
# 小紅
# 小明
values():用於獲取字典中所有的 值。
scores = {
'小王':60,
'小剛':70,
'小紅':80,
'小明':90
}
print(scores.values())
# dict_values([60, 70, 80, 90])
# 取值方法和keys()方法拓展一樣,items()會介紹更方便的
items():用於獲取字典中所有的 鍵 + 值 元祖。
scores = {
'小王':60,
'小剛':70,
'小紅':80,
'小明':90
}
for name, score in scores.items():
print('%s的分數是:%d' % (name, score))
# 小王的分數是:60
# 小剛的分數是:70
# 小紅的分數是:80
# 小明的分數是:90
get():通過 鍵 獲取字典對應的值,當 鍵 不存在於字典當中時不會報錯,而是默認返回 None,也可通過第二個參數設置不存在時的默認返回值。
scores = {
'小王':60,
'小剛':70,
'小紅':80,
'小明':90
}
# 下面兩種取值都可以
# 存在鍵:小王
print(scores['小王'])
print(scores.get('小王'))
# 60
# 60
# 不存在鍵:小張
print(scores.get('小張'))
# None
# 當不存在鍵:get()第二個參數可修改默認返回值None。
print(scores.get('小張','小張沒有參加語文考試'))
# 小張沒有參加語文考試
print(scores['小張'])
# 報錯:KeyError: '小張'
下圖是字典的其他用法,有興趣的同學可以嘗試下,這裏不做延伸。
5. 字典嵌套
前面提到過,字典的鍵是唯一的,值可以是任意類型的相同值。當值爲字典(列表)時,就組合成了字典嵌套。
scores = {
'一班':{
'小王':60,
'小剛':70
},
'二班':{
'小紅':80,
'小明':90
}
}
print(scores)
# {'一班': {'小王': 60, '小剛': 70}, '二班': {'小紅': 80, '小明': 90}}
取值:如果我們想知道小明的分數,應該怎麼取值呢?
其實和普通的字典一樣,先獲取字典 第一層 的鍵 ['二班'] 得到包含 小紅 和 小明 以及分數的字典,再通過鍵 ['小明'] 就能得到分數了。
scores = {
'一班':{
'小王':60,
'小剛':70,
},
'二班':{
'小紅':80,
'小明':90
}
}
print(scores['二班'])
# {'小紅': 80, '小明': 90}
print(scores['二班']['小明'])
# 90
練習題
同學們,先自覺練習,答案在公衆號,公衆號回覆暗號【答案】即可。
1. 在【Python編程】中用於獲取字典所有的值的方法是?
A. keys()
B. values()
C. items()
D. get()
2. 下列代碼的打印結果爲?
shop = {
'鉛筆':2,
'橡皮擦':3,
'文具盒':10,
}
shop['文具盒'] = 15
print(shop['文具盒'])
A. 2
B. 3
C. 10
D. 15
3. 下列代碼的打印結果爲?
shop = {
'鉛筆':2,
'橡皮擦':3,
'文具盒':10,
'尺':{
'直尺':5,
'三角尺':6
}
}
print(shop['尺']['直尺'])
A. 尺
B. 10
C. 直尺
D. 5
4. 下列代碼的打印結果對嗎?
shop = {
'鉛筆':2,
'橡皮擦':3,
'文具盒':10,
'尺':{
'直尺':5,
'三角尺':6
}
}
for i in shop:
print(i)
打印結果:
鉛筆
橡皮擦
文具盒
直尺
三角尺
5. 小明去文具店一共買了【2根鉛筆,1塊橡皮擦,1個文具盒,2個10cm直尺】,請問小明一共花了多少元錢?
提示:已知文具價格如下代碼所示。
知識點:字典根據鍵取值,嵌套字典注意鍵和值的數據類型。
shop = {
'鉛筆':2,
'橡皮擦':3,
'文具盒':10,
'尺':{
'直尺':{
'20cm直尺':10,
'10cm直尺':5
},
'三角尺':6
}
}
聯繫我們,一起學Python吧
關注我們CSDN吧:每週每日,分享Python實戰代碼,入門資料,進階資料,基礎語法,爬蟲,數據分析,web網站,機器學習,深度學習等等。
微信羣(關注「Python家庭」一起輕鬆學Python吧)
QQ 羣(983031854)