第七關:字典 - 0入門到進階(附練習題) | Python基礎語法

下面小編就整理了在編程中,比較常用的【字典】入門到進階的用法。

Python基礎語法 - 專欄鏈接

目錄

1.  概念

2.  字典與列表的相同處、不同處

3.  修改、添加、刪除字典元素

4.  字典常用方法:keys()、values()、items()、get()

5.  字典嵌套

練習題

聯繫我們,一起學Python吧


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章