網站首頁 編程語言 正文
1. 一個簡單的字典
我們先從寫一個簡單的字典示例開始,
順便看一下 python 字典的語法。
student ={'姓名':'張三','年齡':15} #第一個值 張三是字符串類型,所以用''包裹,
#第二個值是整數類型,所以沒有使用''
print(student['姓名'])
print(student['年齡'])
字典和元組一樣,都用 {花括號} 來包裹中間的元素,
元組內的元素是不可以改變的。而字典中的元素內容都是成對的。
歪曲一點解釋的話:
我們使用列表時,如果要操作內部的元素,列表有索引下標,
通過索引下標,我們就可以操作。而字典呢,
字典就的元素都是成對的,這也就好像我們自己來設置索引下標,
不過存儲的值是多少,我們只要記得自己設置的“索引”就可以操作到元素。
我們來看一下輸出內容:
現在我們對字典有了簡單的認識,
具體如何取使用,我們繼續看下面第二個標題。
2. 使用字典
在 python中,字典是一系列鍵-值對,每個鍵都有一個與之對應的值,
我們可以使用鍵來訪問相關聯的值。與鍵相關聯的值可以是數字、字符串、列表、乃至字典。
python中的任何對象都可以作為字典中的值。
2.1 訪問字典中的值
字典中可以包含任意數量的鍵-值對,想要訪問一個字典當中的值,
需要通過與其對應的鍵來實現訪問。
python
student ={'姓名':'李四'}
print(student['姓名'])
2.2 添加鍵-值對
字典是一種動態結構,可隨時在其中添加鍵-值對。
現在我們有了創建好的字典,那代碼如何寫才能向其中添加鍵-值對呢?
student ={'姓名':'李四'}
student['年齡'] =15
student['班級'] ='3年1班'
#打印整個字典
print(student)
我們來看一下添加后的結果:
這里要告訴大家一點,
鍵-值對的排列順序與添加順序不同,Python 不關心鍵-值對的添加順序,
而只關心鍵和值之間的關聯關系。
2.3 修改字典中的值
記不記得上篇文章,我們聊過一個話題,
就是列表 用 [方括號] 而元組 用 {花括號},字典也是用{花括號}
而三者不管是哪一個,進行值或元素 操作的時候,都是用的[方括號]。
個人感覺還是挺合理的,前兩者有索引下標,后者隨波逐流,感覺很方便用戶使用。
我們來寫一下修改字典值的代碼吧。
student = {'姓名':'張三','年齡':15}
#現在將 姓名更改成 李四,年齡更改為18
student['姓名'] = '李四'
student['年齡'] = 19
print(student)
看一下,是不是成功修改了呢。
2.4 刪除鍵-值對
對于列表中不在需要的信息,也可以使用像刪除列表元素時的del語句進行刪除。
看一下 del 語句刪除字典中的鍵值對該怎么寫:
# 使用 del 語句刪除時,必須指定字典名和要刪除的鍵
student = {'姓名':'張三','年齡':15}
print(student)
del student['年齡']
print(student)
#被刪除的鍵值對是永久消失的
3. 遍歷字典
一個 python 字典可能只包含幾個鍵-值對,也可能包含數百萬個鍵-值對。
鑒于字典可能包含大量的數據,python支持對字典進行遍歷。
字典可用于各種方式存儲信息,因此有多重遍歷字典的方式:可遍歷字典的所有鍵-值對、鍵或值。
3.1 遍歷所有鍵-值對
我們先來創建一個存儲學生信息的字典:
student ={'姓名':'張三','年齡':'10','班級':'三年1班'}
接下來我們通過 for循環來獲取字典中的所有信息:
for key,value in student.items():
print("Key鍵\t"+key)
print("Value值\t"+value)
// items( ) 這個函數會返回字典當中的所有鍵-值
而key 和 value 是我們要遍歷字典時,用于存儲信息的臨時變量。
你也可以另起名稱,就像遍歷列表時一樣,只要見名知意即可。
我們來看一下本段代碼的執行結果:
3.2 遍歷字典中的所有鍵
在不需要使用字典中的值時,方法 keys() 很有用。
下面我們來寫段示例,演示一下對于只遍歷鍵的情況。
student ={'姓名':'張三','年齡':'10','班級':'三年1班'}
for key in student.keys():
print('key:'+key)
看一下輸出結果:
3.3 按順序遍歷字典中的所有鍵
字典明確的記錄著自己所存儲的鍵和值之間的關系,但獲取字典元素時,
獲取順序是不可預測的。
想以特定的順序返回元素,一種辦法是在for循環中對返回的鍵進行排序。
python提供函數 sorted() 來獲得按特定順序排列的鍵列表的副本。
students ={'張三':'c','李四':'python','王五':'java','趙六':'c++'}
for key in sorted(students.keys()):
print(key+'同學,歡迎你學習 python 語言')
我們來輸出看一下,sorted() 函數是否幫助我們正確的排列了列表中的鍵。
3.4 遍歷字典中的所有值
在 python 中,針對字典中保存的所有值,可使用 values() 函數,
這個函數會返回一個值列表,不包含鍵。
students ={'張三':'c','李四':'python','王五':'java','趙六':'c++'}
for value in students.values():
print(value)
這樣使用 values() 函數就可以成功將字典中包含的值,全部輸出。
但如果有這樣的一個問題:假如字典中保存了成千上萬的值,
通過 values 全部輸出是沒有問題了,但是成千上萬的數據量難免出現重復內容。
怎樣解決重復內容的問題呢?
我們可以借助 python 提供給我們的另一個函數:set ()
students ={'張三':'c','李四':'python','王五':'java','趙六':'c++'}
for value in set(students.values()):
print(value)
通過set 函數,將找尋字典中沒有重復內容的所值,保存在一個集合中。
4.嵌套
有時候,我們需要將字典存儲在列表中,或者將列表作為值存儲在字典中。
這種操作稱為嵌套。
4.1 字典列表
我們使用字典存儲學生的信息,
假設,第一個創建的字典存儲了張三同學的信息,
那么第二個同學的信息如何保存呢?
考慮到這個問題,我們可以繼續使用字典存儲同學的信息,
如果有新同學的信息需要存儲,我們就繼續創建新的字典,
當學生的信息存儲完成之后,在將字典存儲到列表當中,
使用列表來存儲所有存儲了學生信息的字典。
student1 ={'姓名':'張三','年齡':'15','班級':'初三一班'}
student2 ={'姓名':'李四','年齡':'15','班級':'初三二班'}
student3 ={'姓名':'王五','年齡':'15','班級':'初三一班'}
students =[student1,student2,student3]
for student in students:
print(student)
我們來看一下遍歷列表的輸出結果:
4.2 range() 函數
上述示例中,我們創建每個學生存儲學生的字典,都是手動編碼的,
先不考慮信息的問題,如何解決自動創建呢?
我們可以借助python 提供給我們的 range() 函數
#先創建一個空列表
students =[]
#設置批量創建字典存儲學生信息的過程
for student in range(30):
student_zd = {'姓名':'張三','年齡':15,'班級':'初三一班'}
students.append(student_zd)
#遍歷列表,輸出存儲的前五個信息
for stu in students[:5]:
print(stu)
輸出存儲的前五個信息時,我們就用到了前面章節中掌握的切片知識點了。
4.3 在字典中存儲列表
我們來寫一個講列表存儲在字典中的示例:
#創建一個用于存儲披薩信息的字典
#存儲配方時,將值的形式以列表進行存儲
pizza ={
'品名':'榴蓮披薩',
'配方':['榴蓮','白面','礦物質水','芝麻']
}
# 嘗試打印字典中的 普通形式鍵值對
print('推薦你品嘗一下:'+pizza['品名'])
# 嘗試打印字典中 以列表形式存儲的鍵值對
print('榴蓮披薩是這樣做的:\n')
for pa in pizza['配方']:
print(pa)
將列表存儲在字典當中,只要捋清邏輯,
其實還是很好實現的,我們來看一下輸出結果:
4.4 在字典中存儲字典
user ={
'user1':{'userName':'張三','userInfo':'QQ郵箱'},
'user2':{'userName':'李四','userInfo':'網易郵箱'}
}
#嘗試打印字典中的值
for key,value in user.items():
print('正在嘗試獲取用戶信息....')
print('---------------------')
print('當前正在解析用戶:'+key+'的信息')
uName = '用戶'+value['userName']+'正在以'+value['userInfo']+'的登錄形式訪問網站'
print(uName)
在本段示例中,我們想創建了一個存儲用戶信息的字典,
該字典的鍵是用戶的登錄id,其實就是一個字符串。
而該鍵所對應的值是一個嵌套的新字典,在該字典中,正常存儲信息。
在輸出時,
我們先遍歷 得到字典的key值,還有value值,
輸出用戶的信息值,也就是登錄id,直接輸出字典key即可。
而該key所對應的字典的值,利用key[索引到字典內部嵌套的字典的key],
其實很簡單,就是利用被嵌套字典的key輸出它的value
最后我們來看一下輸出結果:
原文鏈接:https://blog.csdn.net/tianlei_/article/details/128987592
相關推薦
- 2022-11-11 Python?GUI程序類寫法與Label介紹_python
- 2022-10-14 基于數據庫自定義UserDetailsService實現JWT認證
- 2022-03-27 Android自定義模擬時鐘控件_Android
- 2023-01-29 Python?第三方庫?openpyxl?的安裝過程_python
- 2022-03-24 C++?Primer的變量和基本類型詳解_C 語言
- 2023-04-07 C#中括號強轉、as、is區別詳解_C#教程
- 2022-09-22 數據庫基本增刪改查語法和多表連查的方式
- 2022-05-21 Nginx實現負載均衡的項目實踐_nginx
- 最近更新
-
- 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同步修改后的遠程分支