Python字典的基礎(chǔ)操作
1、字典的概念
Python
中的字典數(shù)據(jù)類型和現(xiàn)實(shí)中的字典很像,它是以鍵值對(duì)(鍵和值的組合)的方式把數(shù)據(jù)組織到一起,可以通過(guò)鍵找到與之對(duì)應(yīng)的值并進(jìn)行操作。就跟字典中每次字(鍵)都會(huì)有對(duì)應(yīng)的解釋(值)一樣,每個(gè)字和它的解釋合在一起就是字典中的一個(gè)條目,而字典中通常包含了很多個(gè)這樣的條目。
2、創(chuàng)建和使用字典
在Python
中創(chuàng)建字典使用{}字面量語(yǔ)法,這跟創(chuàng)建集合的符號(hào)是一樣的。但是字典的{}中的元素是以鍵值對(duì)的形式存在的,每個(gè)元素由:分隔的兩個(gè)值構(gòu)成,:前面是鍵:后面是值,每個(gè)對(duì)之間用逗號(hào),分割語(yǔ)法格式,
具體語(yǔ)法格式如下:
dict = {key1 : value1, key2 : value2 }
2.1 創(chuàng)建字典
# 創(chuàng)建字典 dict1 = {"姓名": "甜甜"} print(type(dict1), dict1) # <class 'dict'> {'姓名': '甜甜'} dict2 = { "姓名": "甜甜", "性別": "女", "年齡": "19" } print(dict2) # {'姓名': '甜甜', '性別': '女', '年齡': '19'}
使用dict()
或者是字典的生成式語(yǔ)法來(lái)創(chuàng)建字典,示例代碼如下:
# 使用dict 創(chuàng)建對(duì)象,鍵不可以加""引號(hào) dict1 = dict(姓名="甜甜", 性別="女", 年齡="19") print(type(dict1), dict1) # <class 'dict'> {'姓名': '甜甜', '性別': '女', '年齡': '19'} list1 = ["姓名", "性別", "年齡"] list2 = ["甜甜", "女", "19"] # zip()函數(shù)將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,返回由這些元組組成的對(duì)象 dict2 = dict(zip(list1, list2)) print(dict2) # {'姓名': '甜甜', '性別': '女', '年齡': '19'} # 使用生成列創(chuàng)建字典 dict3 = {x: x ** 3 for x in range(6)} print(dict3) # {0: 0, 1: 1, 2: 8, 3: 27, 4: 64, 5: 125}
可以使用len(dict)
得到字典元素個(gè)數(shù),即鍵的總數(shù)
for循環(huán)也只能對(duì)鍵有效
dict1 = {'姓名': '甜甜', '性別': '女', '年齡': '19'} print(len(dict1)) # 3 for ch in dict1: print(ch) ''' 姓名 性別 年齡 '''
3、字典的運(yùn)算
對(duì)于字典來(lái)說(shuō),成員運(yùn)算和索引(字典的索引是鍵值對(duì)中的鍵)運(yùn)算是尤為重要的,前者可以判斷指定的鍵在不在字典中,后者可以得對(duì)應(yīng)的值,或?qū)ζ溥M(jìn)行修改或者新加。字典中的鍵必須是不變類型,例如整數(shù)(int
)、浮點(diǎn)數(shù)(float
)、字符串(str
)、元組(tuple
)等類型的值。字典本身也是可變類型
示例代碼:
dict1 = {'姓名': '甜甜', '性別': '女', '年齡': '19'} # 成員運(yùn)算 print("姓名" in dict1, "性別" not in dict1) # True False # 先判斷在修改 if "姓名" in dict1: dict1["姓名"] = '王甜甜' print(dict1) # {'姓名': '王甜甜', '性別': '女', '年齡': '19'} # 通過(guò)索引為dict1 增加數(shù)據(jù) dict1["愛(ài)好"] = "旅游" print("愛(ài)好" in dict1) # True # 對(duì)字典的鍵進(jìn)行循環(huán)并通索引運(yùn)算獲取鍵對(duì)應(yīng)的值 for key in dict1: print(f'{key}: {dict1[key]}') ''' 姓名: 王甜甜 性別: 女 年齡: 19 愛(ài)好: 旅游 '''
注意:在通過(guò)索引運(yùn)算獲取字典中的值時(shí),如指定的鍵沒(méi)有在字典中,將會(huì)引發(fā)KeyError異常
3.1 字典的方法
字典的方法都是對(duì)鍵值對(duì)進(jìn)行相關(guān)操作:
# 字典的嵌套 students = { 10001: {"name": "小明", "sex": "男", "age": 18}, 10002: {"name": "小紅", "sex": "女", "age": 16}, 10003: {"name": "小白", "sex": "女", "age": 19}, 10004: {"name": "小周", "sex": "男", "age": 20} } # 使用get方法通過(guò)鍵獲取對(duì)應(yīng)的值,如果取不到是返回的默認(rèn)值(默認(rèn)為None) print(students.get(10002)) # {'name': '小紅', 'sex': '女', 'age': 16} print(students.get(10005)) # None print(students.get(10005, "沒(méi)有這個(gè)學(xué)生")) # 沒(méi)有這個(gè)學(xué)生 # 獲取字典中所有的鍵 print(students.keys())# dict_keys([10001, 10002, 10003, 10004]) # 獲取字典中所有的值 print(students.values()) # dict_values([{...}, {...}, {...}, {...}]) # 獲取字典中所有的鍵值對(duì) # dict_items([(10001, {...}), (10002, {....}), (10003, {...}), (10004, {...})]) print(students.items()) # 對(duì)字典中所有的鍵值對(duì)進(jìn)行循環(huán)遍歷 for key, value in students.items(): print(key, '--->', value) # 使用pop方法通過(guò)鍵刪除對(duì)應(yīng)的鍵值對(duì)并返回該值 stu1 = students.pop(10002) print(stu1) # {'name': '小紅', 'sex': '女', 'age': 16} print(len(students)) # 3 # 如果刪除的不在字典中,會(huì)引發(fā)KeyError異常 # stu2 = students.pop(10005) # KeyError: 10005 # 使用popitem方法刪除字典中最后一組鍵值對(duì)并返回對(duì)應(yīng)的二元組 # 如果字典中沒(méi)有元素,調(diào)用該方法將引發(fā)KeyError異常 key, value = students.popitem() print(key, value) # 10004 {'name': '小周', 'sex': '男', 'age': 20} # setdefault可以更新字典中的鍵對(duì)應(yīng)的值或向字典中存入新的鍵值對(duì) # setdefault方法的第一個(gè)參數(shù)是鍵,第二個(gè)參數(shù)是鍵對(duì)應(yīng)的值 # 如果這個(gè)鍵在字典中存在,更新這個(gè)鍵之后會(huì)返回原來(lái)與這個(gè)鍵對(duì)應(yīng)的值 # 如果這個(gè)鍵在字典中不存在,方法將返回第二個(gè)參數(shù)的值,默認(rèn)為None result = students.setdefault(10005, {"name": "小綠", "sex": "女", "age": 18}) print(result) # {'name': '小綠', 'sex': '女', 'age': 18} print(students)# {10001: {...}, (10003, {...}), 10005: {...}} # 使用update更新字典元素,相同的鍵會(huì)用新值覆蓋掉舊值,不同的鍵會(huì)添加到字典中 others = { 10005: {"name": "小南", "sex": "男", "age": 19}, 10006: {"name": "小北", "sex": "男", "age": 19}, 10007: {"name": "小冬", "sex": "男", "age": 19} } students.update(others) # {10001: {...}, 10003: {...}, 10005: {...}, 10006: {...}, 10007: {...}} print(students)
到此這篇關(guān)于Python字典的基礎(chǔ)操作的文章就介紹到這了,更多相關(guān)Python字典內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。