一、字典的基本操作
Python中的字典是一種鍵值對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu),可以用于存儲(chǔ)各種類型的數(shù)據(jù)。字典的鍵必須是唯一的,而值可以是任何類型的數(shù)據(jù),包括列表、元組、集合等。
字典數(shù)據(jù)可以通過以下方式創(chuàng)建:
dict1 = {'name': 'John', 'age': 27, 'sex': 'Male'}
dict2 = dict(name='John', age=27, sex='Male')
可以使用鍵值對(duì)進(jìn)行訪問、修改操作:
# 訪問
dict1['name']
# 修改
dict1['age'] = 28
還可以使用字典的方法進(jìn)行常規(guī)操作:
# 返回所有鍵
dict1.keys()
# 返回所有值
dict1.values()
# 返回所有鍵值對(duì)
dict1.items()
# 清空字典
dict1.clear()
二、字典的合并
在實(shí)際應(yīng)用中,經(jīng)常需要將兩個(gè)字典合并,可以使用update()方法實(shí)現(xiàn)。如果有重復(fù)的鍵,后面的字典會(huì)覆蓋前面的字典。
dict1 = {'name': 'John', 'age': 27, 'sex': 'Male'}
dict2 = {'age': 28, 'phone': '123456'}
dict1.update(dict2)
print(dict1)
# 輸出:{'name': 'John', 'age': 28, 'sex': 'Male', 'phone': '123456'}
三、字典的遍歷
當(dāng)字典中的鍵值對(duì)很多時(shí),需要遍歷字典來訪問數(shù)據(jù)。
通過遍歷字典的keys()方法可以訪問所有的鍵:
dict1 = {'name': 'John', 'age': 27, 'sex': 'Male'}
for key in dict1.keys():
print(key)
# 輸出:name age sex
通過遍歷字典的values()方法可以訪問所有的值:
dict1 = {'name': 'John', 'age': 27, 'sex': 'Male'}
for val in dict1.values():
print(val)
# 輸出:John 27 Male
通過遍歷字典的items()方法可以訪問所有的鍵值對(duì):
dict1 = {'name': 'John', 'age': 27, 'sex': 'Male'}
for key, val in dict1.items():
print(key, val)
# 輸出:name John age 27 sex Male
四、字典的過濾
Python中可以通過字典推導(dǎo)式實(shí)現(xiàn)字典的過濾操作。
下面的例子是通過過濾掉字典中age的值小于28的鍵值對(duì),得到一個(gè)新的字典:
dict1 = {'name': 'John', 'age': 27, 'sex': 'Male', 'phone': '123456'}
new_dict = {key: val for key, val in dict1.items() if key != 'age' or val >= 28}
print(new_dict)
# 輸出:{'name': 'John', 'age': 28, 'sex': 'Male', 'phone': '123456'}
上面的代碼中使用了if條件表達(dá)式,如果鍵不是age或者鍵是age并且值大于等于28,則保留該鍵值對(duì)。
五、字典的排序
字典中的鍵不是有序的,但是Python中可以使用sorted()方法來對(duì)字典排序。
下面的例子是將字典按照鍵的值進(jìn)行升序排序:
dict1 = {'a': 3, 'b': 2, 'c': 1}
sorted_dict = {key: dict1[key] for key in sorted(dict1.keys())}
print(sorted_dict)
# 輸出:{'a': 3, 'b': 2, 'c': 1}
上面的代碼中,使用了sorted()方法對(duì)字典的鍵進(jìn)行排序,然后使用字典推導(dǎo)式生成了一個(gè)新的字典。
六、結(jié)語
Python的字典是一種非常有用的數(shù)據(jù)結(jié)構(gòu),對(duì)于數(shù)據(jù)的存儲(chǔ)和處理提供了很方便的支持。Python的字典方法豐富多樣,掌握了這些方法,可以更高效地處理數(shù)據(jù)。