python?字典的概念敘述和使用方法
1. 一個簡單的字典
我們先從寫一個簡單的字典示例開始,
順便看一下 python 字典的語法。
student ={'姓名':'張三','年齡':15} #第一個值 張三是字符串類型,所以用''包裹, #第二個值是整數類型,所以沒有使用'' print(student['姓名']) print(student['年齡'])
字典和元組一樣,都用 {花括號} 來包裹中間的元素,
元組內的元素是不可以改變的。而字典中的元素內容都是成對的。
歪曲一點解釋的話:
我們使用列表時,如果要操作內部的元素,列表有索引下標,
通過索引下標,我們就可以操作。而字典呢,
字典就的元素都是成對的,這也就好像我們自己來設置索引下標,
不過存儲的值是多少,我們只要記得自己設置的“索引”就可以操作到元素。
我們來看一下輸出內容:
現在我們對字典有了簡單的認識,
具體如何取使用,我們繼續(xù)看下面第二個標題。
2. 使用字典
在 python中,字典是一系列鍵-值對,每個鍵都有一個與之對應的值,
我們可以使用鍵來訪問相關聯的值。與鍵相關聯的值可以是數字、字符串、列表、乃至字典。
python中的任何對象都可以作為字典中的值。
2.1 訪問字典中的值
字典中可以包含任意數量的鍵-值對,想要訪問一個字典當中的值,
需要通過與其對應的鍵來實現訪問。
python student ={'姓名':'李四'} print(student['姓名'])
2.2 添加鍵-值對
字典是一種動態(tài)結構,可隨時在其中添加鍵-值對。
現在我們有了創(chuàng)建好的字典,那代碼如何寫才能向其中添加鍵-值對呢?
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 遍歷所有鍵-值對
我們先來創(chuàng)建一個存儲學生信息的字典:
student ={'姓名':'張三','年齡':'10','班級':'三年1班'}
接下來我們通過 for循環(huán)來獲取字典中的所有信息:
for key,value in student.items(): print("Key鍵\t"+key) print("Value值\t"+value)
// items( ) 這個函數會返回字典當中的所有鍵-值
而key 和 value 是我們要遍歷字典時,用于存儲信息的臨時變量。
你也可以另起名稱,就像遍歷列表時一樣,只要見名知意即可。
我們來看一下本段代碼的執(zhí)行結果:
3.2 遍歷字典中的所有鍵
在不需要使用字典中的值時,方法 keys() 很有用。
下面我們來寫段示例,演示一下對于只遍歷鍵的情況。
student ={'姓名':'張三','年齡':'10','班級':'三年1班'} for key in student.keys(): print('key:'+key)
看一下輸出結果:
3.3 按順序遍歷字典中的所有鍵
字典明確的記錄著自己所存儲的鍵和值之間的關系,但獲取字典元素時,
獲取順序是不可預測的。
想以特定的順序返回元素,一種辦法是在for循環(huán)中對返回的鍵進行排序。
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 字典列表
我們使用字典存儲學生的信息,
假設,第一個創(chuàng)建的字典存儲了張三同學的信息,
那么第二個同學的信息如何保存呢?
考慮到這個問題,我們可以繼續(xù)使用字典存儲同學的信息,
如果有新同學的信息需要存儲,我們就繼續(xù)創(chuàng)建新的字典,
當學生的信息存儲完成之后,在將字典存儲到列表當中,
使用列表來存儲所有存儲了學生信息的字典。
student1 ={'姓名':'張三','年齡':'15','班級':'初三一班'} student2 ={'姓名':'李四','年齡':'15','班級':'初三二班'} student3 ={'姓名':'王五','年齡':'15','班級':'初三一班'} students =[student1,student2,student3] for student in students: print(student)
我們來看一下遍歷列表的輸出結果:
4.2 range() 函數
上述示例中,我們創(chuàng)建每個學生存儲學生的字典,都是手動編碼的,
先不考慮信息的問題,如何解決自動創(chuàng)建呢?
我們可以借助python 提供給我們的 range() 函數
#先創(chuàng)建一個空列表 students =[] #設置批量創(chuàng)建字典存儲學生信息的過程 for student in range(30): student_zd = {'姓名':'張三','年齡':15,'班級':'初三一班'} students.append(student_zd) #遍歷列表,輸出存儲的前五個信息 for stu in students[:5]: print(stu)
輸出存儲的前五個信息時,我們就用到了前面章節(jié)中掌握的切片知識點了。
4.3 在字典中存儲列表
我們來寫一個講列表存儲在字典中的示例:
#創(chuàng)建一個用于存儲披薩信息的字典 #存儲配方時,將值的形式以列表進行存儲 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)
在本段示例中,我們想創(chuàng)建了一個存儲用戶信息的字典,
該字典的鍵是用戶的登錄id,其實就是一個字符串。
而該鍵所對應的值是一個嵌套的新字典,在該字典中,正常存儲信息。
在輸出時,
我們先遍歷 得到字典的key值,還有value值,
輸出用戶的信息值,也就是登錄id,直接輸出字典key即可。
而該key所對應的字典的值,利用key[索引到字典內部嵌套的字典的key],
其實很簡單,就是利用被嵌套字典的key輸出它的value
最后我們來看一下輸出結果:
到此這篇關于python 字典的概念敘述和使用方法的文章就介紹到這了,更多相關python 字典使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PyCharm運行Python代碼時出現"未找到模塊"錯誤解決步驟
在使用python的過程中經常會遇到一個問題,就是叫什么名字的模塊未發(fā)現,下面這篇文章主要給大家介紹了關于PyCharm運行Python代碼時出現"未找到模塊"錯誤的解決步驟,需要的朋友可以參考下2023-11-11Python?Setuptools的?setup.py實例詳解
setup.py是一個?python?文件,它的存在表明您要安裝的模塊/包可能已經用?Setuptools?打包和分發(fā),這是分發(fā)?Python?模塊的標準。?它的目的是正確安裝軟件,本文給大家講解Python?Setuptools的?setup.py感興趣的朋友跟隨小編一起看看吧2022-12-12python中l(wèi)ist列表復制的幾種方法(賦值、切片、copy(),deepcopy())
本文主要介紹了python中l(wèi)ist列表復制的幾種方法(賦值、切片、copy(),deepcopy()),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08