網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
前言:
本文的主要內(nèi)容是介紹Python中字典及其使用,包括使用字典(添加、刪除、修改等操作)、遍歷字典以及字典與列表之間的嵌套使用,文中附有代碼以及相應(yīng)的運(yùn)行結(jié)果輔助理解。
一、使用字典
在Python中,字典用放在花括號(hào){}中的一系列鍵值對(duì)表示,鍵和值之間用冒號(hào)分隔,而鍵值對(duì)之間用逗號(hào)分隔,每個(gè)鍵都與一個(gè)值相關(guān)聯(lián),你可以使用鍵來(lái)訪問(wèn)與之相關(guān)聯(lián)的值,與鍵相關(guān)聯(lián)的值可以是數(shù)字、字符串、列表乃至字典。事實(shí)上,可將任何Python對(duì)象用作字典中的值。
1.訪問(wèn)字典中的值
字典是由一系列鍵值對(duì)組成的,要訪問(wèn)字典中的值,就需要知道字典的名稱,想要訪問(wèn)的字典鍵名。
下面是一個(gè)訪問(wèn)字典中值的例子:
fruit = {'name': 'apple', 'color': 'red', 'num': 5} ?#有三個(gè)鍵值對(duì)的字典 print('name: ' + fruit['name']) #打印每個(gè)鍵所對(duì)應(yīng)的值 print('color: ' + fruit['color']) print('num: ' + str(fruit['num']))
運(yùn)行結(jié)果如下圖所示:
2.在字典中添加鍵值對(duì)
字典是一種動(dòng)態(tài)結(jié)構(gòu),可以添加鍵值對(duì),依次指定字典名、用方括號(hào)括起的鍵和相關(guān)聯(lián)的值即可完成添加。
下面是在字典中添加鍵值對(duì)的例子:
fruit = {} ?#創(chuàng)建一個(gè)空字典 print('1.fruit = ' + str(fruit)) fruit['name'] = 'apple' ?#依次添加鍵值對(duì) print('2.fruit = ' + str(fruit)) fruit['color'] = 'red' print('3.fruit = ' + str(fruit)) fruit['num'] = 5 print('4.fruit = ' + str(fruit))
運(yùn)行結(jié)果如下圖所示:
3.修改字典中的值
要修改字典中的值,可依次指定字典名、用方括號(hào)括起的鍵以及與該鍵相關(guān)聯(lián)的新值。
下面是修改字典中值的例子:
fruit = {'name': 'apple', 'color': 'red', 'num': 5} print('Before modify: fruit = ' + str(fruit)) fruit['color'] = 'green' #修改鍵名為'color'的值 fruit['num'] = 20 ?#修改鍵名為'num'的值 print('After modify: fruit = ' + str(fruit))
運(yùn)行結(jié)果如下圖所示:
4.刪除字典中的鍵值對(duì)
對(duì)于字典中需要?jiǎng)h除的鍵值對(duì),可使用del語(yǔ)句將相應(yīng)的鍵值對(duì)徹底刪除,使用del語(yǔ)句時(shí)需要指定字典名和要?jiǎng)h除的鍵。
下面是刪除字典中的鍵值對(duì)的例子:
fruit = {'name': 'apple', 'color': 'red', 'num': 5} print('Before delete: fruit = ' + str(fruit)) del fruit['color'] ?#刪除鍵名為'color'的鍵值對(duì) print('After delete: fruit = ' + str(fruit))
運(yùn)行結(jié)果如下圖所示:
5.由類似對(duì)象組成的字典
在前面的例子中,字典存儲(chǔ)的是一個(gè)對(duì)象的多種信息,當(dāng)然字典也可以存儲(chǔ)多個(gè)對(duì)象的同一種信息。
下面是由類似對(duì)象組成字典的例子:
favorite_fruit = { ? ? 'A': 'apple', ? ? 'B': 'orange', ? ? 'C': 'banana', } print("A's favorite fruit is " + favorite_fruit['A'] + ".") print("B's favorite fruit is " + favorite_fruit['B'] + ".") print("C's favorite fruit is " + favorite_fruit['C'] + ".")
運(yùn)行結(jié)果如下圖所示:
二、遍歷字典
1.遍歷字典中的所有鍵值對(duì)
遍歷字典中的所有鍵值對(duì)使用的主要語(yǔ)句如下:
or key, value in name.items()
——其中key,value可以自己指定,name是字典名。
下面是遍歷字典中的所有鍵值對(duì)的例子:
favorite_fruit = { ? ? 'A': 'apple', ? ? 'B': 'orange', ? ? 'C': 'banana', } for name, fruit in favorite_fruit.items(): ?#遍歷字典中的所有鍵值對(duì) ? ? print(name + "'s favorite fruit is " + fruit + ".")
運(yùn)行結(jié)果如下圖所示:
可以看到,運(yùn)行結(jié)果與三條print語(yǔ)句的輸出是相同的。
2.遍歷字典中的所有鍵
遍歷字典中的所有鍵使用的主要語(yǔ)句如下:
for key in name.keys()
——其中key可以自己指定,name是字典名。for key in name
——也可以省略.keys(),輸出是一樣的。for key in sorted(name.keys())
——按順序遍歷字典中所有的鍵。
下面是遍歷字典中的所有鍵的例子:
favorite_fruit = { ? ? 'B': 'apple', ? ? 'D': 'orange', ? ? 'C': 'banana', ? ? 'A': 'pear', } print('1. With .keys() output:') for name in favorite_fruit.keys(): ?#遍歷字典中所有的鍵 ? ? print(name) print('2. Without .keys() output:') ?#遍歷字典中所有的鍵——省略.keys() for name in favorite_fruit: ? ? print(name) ? print('3. sorted() output:') for name in sorted(favorite_fruit.keys()): ?#按順序遍歷字典中所有的鍵 ? ? print(name)
運(yùn)行結(jié)果如下圖所示:
由輸出結(jié)果可知,加入sorted()
函數(shù)后,鍵名果然是順序輸出的。
3.遍歷字典中的所有值
遍歷字典中的所有值使用的主要語(yǔ)句如下:
alue in name.values()
——其中value可以自己指定,name是字典名。for value in set(name.values())
——可以篩除掉value中的重復(fù)值。
下面是遍歷字典中的所有值的例子:
favorite_fruit = { ? ? 'B': 'apple', ? ? 'D': 'orange', ? ? 'C': 'banana', ? ? 'A': 'apple', } print('1. All values output:') for fruit in favorite_fruit.values(): ?#遍歷字典中所有的值 ? ? print(fruit) ? ?? print('2. With sorted() output:') for fruit in sorted(favorite_fruit.values()): ?#按順序遍歷字典中所有的值 ? ? print(fruit) ? ?? print('3. With set() output:') for fruit in set(favorite_fruit.values()): ?#剔除重復(fù)的值 ? ? print(fruit)
運(yùn)行結(jié)果如下圖所示:
由輸出結(jié)果可知,加入set()
函數(shù)后,輸出的值是無(wú)序的,這是正常的,輸出的值也確實(shí)沒(méi)有重復(fù)的。
三、嵌套
有時(shí)候需要將一系列字典存儲(chǔ)在列表中,或?qū)⒘斜碜鳛橹荡鎯?chǔ)在字典中,這樣的操作稱為嵌套,可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
1.字典列表
字典用于描述一個(gè)對(duì)象的多個(gè)特征,多個(gè)對(duì)象就需要多個(gè)字典,然后再把所有的字典存儲(chǔ)在一個(gè)列表里,我們遍歷列表即可遍歷所有的對(duì)象及其對(duì)應(yīng)的特征。
下面是字典列表的例子:
fruit_1 = {'name': 'apple', 'color': 'red', 'num': 15} fruit_2 = {'name': 'banana', 'color': 'yellow', 'num': 10} fruit_3 = {'name': 'watermelon', 'color': 'green', 'num': 20} fruits = [fruit_1, fruit_2, fruit_3] ?#將所有的字典存儲(chǔ)在列表里 for fruit in fruits: #遍歷列表 ? ? print(fruit)
運(yùn)行結(jié)果如下圖所示:
下面是相對(duì)復(fù)雜的一個(gè)應(yīng)用例子:
fruits = [] ?#創(chuàng)建一個(gè)空列表 for fruit_num in range(0,5):? ? ? new_fruit = {'name': 'apple', 'color': 'red', 'num': 10} ? ? fruits.append(new_fruit) print('Before modify:') for fruit in fruits: ?#遍歷列表 ? ? print(fruit) for fruit in fruits[:2]: ?#修改列表中前2個(gè)元素的字典屬性 ? ? if fruit['color'] == 'red': ? ? ? ? fruit['color'] = 'green' ? ? ? ? fruit['num'] = 20 print('After modify:') for fruit in fruits: ?#遍歷列表 ? ? print(fruit)
運(yùn)行結(jié)果如下圖所示:
2.在字典中嵌套列表
每當(dāng)需要在字典中將一個(gè)鍵關(guān)聯(lián)到多個(gè)值時(shí),都可以在字典中嵌套一個(gè)列表。
下面是在字典中嵌套列表例子:
favorite_fruit = { ? #在字典中嵌套列表 ? ? 'A': ['apple', 'mango'], ? ? 'B': ['orange'], ? ? 'C': ['banana', 'pear'], } for name, fruits in favorite_fruit.items(): ?#遍歷字典中的鍵值對(duì) ? ? if len(fruits) == 1: ?#列表的長(zhǎng)度為1 ? ? ? ? print(name+ "'s favorite fruits is :") ? ? ? ? for fruit in fruits: ?#遍歷字典中的列表 ? ? ? ? ? ? print("\t" + fruit) ? ? else: ?#列表的長(zhǎng)度大于1 ? ? ? ? print(name + "'s favorite fruits are :") ? ? ? ? for fruit in fruits: ? ? ? ? ? ? print("\t" + fruit)
運(yùn)行結(jié)果如下圖所示:
3.在字典中嵌套字典
有時(shí)候需要在字典中嵌套字典以更好的完成編程任務(wù),比如某個(gè)網(wǎng)站有多個(gè)用戶,每個(gè)用戶都有獨(dú)特的用戶名,可在字典中將用戶名作為鍵,然后將每位用戶的信息存儲(chǔ)在一個(gè)字典中,并將該字典作為與用戶名相關(guān)聯(lián)的值。
下面是在字典中嵌套字典例子:
users ={ ?#在字典中嵌套字典 ? ? 'user_1': { ? ? ? ? 'first_name': 'lebron', ? ? ? ? 'last_name': 'james', ? ? }, ? ? 'user_2': { ? ? ? ? 'first_name': 'kobe', ? ? ? ? 'last_name': 'bryant', ? ? }, ? ? 'user_3': { ? ? ? ? 'first_name': 'kevin', ? ? ? ? 'last_name': 'durant', ? ? }, } for user, userinfo in users.items(): ?#遍歷字典 ? ? print(user + "'s name is " + userinfo['first_name'].title() + ' ' + userinfo['last_name'].title()+'.')
運(yùn)行結(jié)果如下圖所示:
總結(jié):
以上就是Python中字典及其使用的所有內(nèi)容了,學(xué)會(huì)使用字典和遍歷字典是最基礎(chǔ)的操作,字典與列表的嵌套是重點(diǎn)也是難點(diǎn)所在,應(yīng)當(dāng)多加練習(xí)掌握其關(guān)鍵之處,以便在以后的編程中熟練運(yùn)用。
原文鏈接:https://blog.csdn.net/weixin_42570192/article/details/123685348
相關(guān)推薦
- 2022-03-22 C++運(yùn)算符重載詳情介紹_C 語(yǔ)言
- 2022-12-04 深入了解Rust的切片使用_Rust語(yǔ)言
- 2022-11-05 Nginx反向代理location和proxy_pass配置規(guī)則詳細(xì)總結(jié)_nginx
- 2023-05-29 批標(biāo)準(zhǔn)化層?tf.keras.layers.Batchnormalization()解析_pytho
- 2023-07-27 el-select下拉框處理分頁(yè)數(shù)據(jù),觸底加載更多
- 2022-10-14 Ubuntu在GitHub中配置SSH Key
- 2022-09-02 selenium動(dòng)態(tài)數(shù)據(jù)獲取的方法實(shí)現(xiàn)_python
- 2023-01-30 VMware?Tools?啟動(dòng)腳本未能在虛擬機(jī)中成功運(yùn)行的兩種解決方法_VMware
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支