網站首頁 編程語言 正文
前言:
本文的主要內容是介紹Python中字典及其使用,包括使用字典(添加、刪除、修改等操作)、遍歷字典以及字典與列表之間的嵌套使用,文中附有代碼以及相應的運行結果輔助理解。
一、使用字典
在Python中,字典用放在花括號{}中的一系列鍵值對表示,鍵和值之間用冒號分隔,而鍵值對之間用逗號分隔,每個鍵都與一個值相關聯,你可以使用鍵來訪問與之相關聯的值,與鍵相關聯的值可以是數字、字符串、列表乃至字典。事實上,可將任何Python對象用作字典中的值。
1.訪問字典中的值
字典是由一系列鍵值對組成的,要訪問字典中的值,就需要知道字典的名稱,想要訪問的字典鍵名。
下面是一個訪問字典中值的例子:
fruit = {'name': 'apple', 'color': 'red', 'num': 5} ?#有三個鍵值對的字典 print('name: ' + fruit['name']) #打印每個鍵所對應的值 print('color: ' + fruit['color']) print('num: ' + str(fruit['num']))
運行結果如下圖所示:
2.在字典中添加鍵值對
字典是一種動態結構,可以添加鍵值對,依次指定字典名、用方括號括起的鍵和相關聯的值即可完成添加。
下面是在字典中添加鍵值對的例子:
fruit = {} ?#創建一個空字典 print('1.fruit = ' + str(fruit)) fruit['name'] = 'apple' ?#依次添加鍵值對 print('2.fruit = ' + str(fruit)) fruit['color'] = 'red' print('3.fruit = ' + str(fruit)) fruit['num'] = 5 print('4.fruit = ' + str(fruit))
運行結果如下圖所示:
3.修改字典中的值
要修改字典中的值,可依次指定字典名、用方括號括起的鍵以及與該鍵相關聯的新值。
下面是修改字典中值的例子:
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))
運行結果如下圖所示:
4.刪除字典中的鍵值對
對于字典中需要刪除的鍵值對,可使用del語句將相應的鍵值對徹底刪除,使用del語句時需要指定字典名和要刪除的鍵。
下面是刪除字典中的鍵值對的例子:
fruit = {'name': 'apple', 'color': 'red', 'num': 5} print('Before delete: fruit = ' + str(fruit)) del fruit['color'] ?#刪除鍵名為'color'的鍵值對 print('After delete: fruit = ' + str(fruit))
運行結果如下圖所示:
5.由類似對象組成的字典
在前面的例子中,字典存儲的是一個對象的多種信息,當然字典也可以存儲多個對象的同一種信息。
下面是由類似對象組成字典的例子:
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'] + ".")
運行結果如下圖所示:
二、遍歷字典
1.遍歷字典中的所有鍵值對
遍歷字典中的所有鍵值對使用的主要語句如下:
or key, value in name.items()
——其中key,value可以自己指定,name是字典名。
下面是遍歷字典中的所有鍵值對的例子:
favorite_fruit = { ? ? 'A': 'apple', ? ? 'B': 'orange', ? ? 'C': 'banana', } for name, fruit in favorite_fruit.items(): ?#遍歷字典中的所有鍵值對 ? ? print(name + "'s favorite fruit is " + fruit + ".")
運行結果如下圖所示:
可以看到,運行結果與三條print語句的輸出是相同的。
2.遍歷字典中的所有鍵
遍歷字典中的所有鍵使用的主要語句如下:
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)
運行結果如下圖所示:
由輸出結果可知,加入sorted()
函數后,鍵名果然是順序輸出的。
3.遍歷字典中的所有值
遍歷字典中的所有值使用的主要語句如下:
alue in name.values()
——其中value可以自己指定,name是字典名。for value in set(name.values())
——可以篩除掉value中的重復值。
下面是遍歷字典中的所有值的例子:
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()): ?#剔除重復的值 ? ? print(fruit)
運行結果如下圖所示:
由輸出結果可知,加入set()
函數后,輸出的值是無序的,這是正常的,輸出的值也確實沒有重復的。
三、嵌套
有時候需要將一系列字典存儲在列表中,或將列表作為值存儲在字典中,這樣的操作稱為嵌套,可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
1.字典列表
字典用于描述一個對象的多個特征,多個對象就需要多個字典,然后再把所有的字典存儲在一個列表里,我們遍歷列表即可遍歷所有的對象及其對應的特征。
下面是字典列表的例子:
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] ?#將所有的字典存儲在列表里 for fruit in fruits: #遍歷列表 ? ? print(fruit)
運行結果如下圖所示:
下面是相對復雜的一個應用例子:
fruits = [] ?#創建一個空列表 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個元素的字典屬性 ? ? if fruit['color'] == 'red': ? ? ? ? fruit['color'] = 'green' ? ? ? ? fruit['num'] = 20 print('After modify:') for fruit in fruits: ?#遍歷列表 ? ? print(fruit)
運行結果如下圖所示:
2.在字典中嵌套列表
每當需要在字典中將一個鍵關聯到多個值時,都可以在字典中嵌套一個列表。
下面是在字典中嵌套列表例子:
favorite_fruit = { ? #在字典中嵌套列表 ? ? 'A': ['apple', 'mango'], ? ? 'B': ['orange'], ? ? 'C': ['banana', 'pear'], } for name, fruits in favorite_fruit.items(): ?#遍歷字典中的鍵值對 ? ? if len(fruits) == 1: ?#列表的長度為1 ? ? ? ? print(name+ "'s favorite fruits is :") ? ? ? ? for fruit in fruits: ?#遍歷字典中的列表 ? ? ? ? ? ? print("\t" + fruit) ? ? else: ?#列表的長度大于1 ? ? ? ? print(name + "'s favorite fruits are :") ? ? ? ? for fruit in fruits: ? ? ? ? ? ? print("\t" + fruit)
運行結果如下圖所示:
3.在字典中嵌套字典
有時候需要在字典中嵌套字典以更好的完成編程任務,比如某個網站有多個用戶,每個用戶都有獨特的用戶名,可在字典中將用戶名作為鍵,然后將每位用戶的信息存儲在一個字典中,并將該字典作為與用戶名相關聯的值。
下面是在字典中嵌套字典例子:
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()+'.')
運行結果如下圖所示:
總結:
以上就是Python中字典及其使用的所有內容了,學會使用字典和遍歷字典是最基礎的操作,字典與列表的嵌套是重點也是難點所在,應當多加練習掌握其關鍵之處,以便在以后的編程中熟練運用。
原文鏈接:https://blog.csdn.net/weixin_42570192/article/details/123685348
相關推薦
- 2022-05-31 Windows下搭建Redis集群的方法步驟_Redis
- 2023-12-02 windows7右下角的隱藏欄不見了
- 2022-10-29 正則表達式從HTML中匹配img標簽的圖片地址_正則表達式
- 2022-09-04 詳解Go語言中數組,切片和映射的使用_Golang
- 2024-07-15 項目開發中使用Date和LocalDateTime處理日期
- 2022-04-01 OpenCV實現簡單套索工具_C 語言
- 2023-12-26 layui彈窗傳值
- 2023-07-16 unipp 小程序 退出登錄
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支