一、字典是什麼
在Python中,字典(Dictionary)是一種無序、可變、可迭代並且鍵唯一的數據類型。
字典由鍵和對應的值(Key-Value)組成,每個鍵和值之間使用冒號分隔,每一組鍵值對之間使用逗號分隔,最外層使用花括弧包裹。比如:
{
'name': 'Tom',
'age': 18,
'gender': 'Male'
}
字典中的鍵必須是不可變類型,比如數字、字元串、元組等。而字典中的值則可以是任意類型。
二、字典的基本操作
以下是字典的基本操作:
1、創建字典
使用花括弧可以創建一個空字典:
empty_dict = {}
也可以直接在花括弧中定義字典的鍵值對:
person = {
'name': 'Tom',
'age': 18,
'gender': 'Male'
}
2、訪問字典中的值
可以使用字典中的鍵來訪問對應的值:
name = person['name'] print(name) # 輸出 Tom
3、修改字典中的值
可以直接通過鍵來修改字典中對應的值:
person['age'] = 20
print(person) # 輸出 {'name': 'Tom', 'age': 20, 'gender': 'Male'}
4、刪除字典中的鍵值對
可以使用 del 關鍵字刪除字典中的鍵值對:
del person['gender']
print(person) # 輸出 {'name': 'Tom', 'age': 20}
三、字典的內置方法
除了基本操作外,字典還有很多內置方法可供使用。
1、獲取字典中的所有鍵
使用 keys() 方法可以獲取字典中的所有鍵:
person = {
'name': 'Tom',
'age': 18,
'gender': 'Male'
}
keys = person.keys()
print(list(keys)) # 輸出 ['name', 'age', 'gender']
2、獲取字典中的所有值
使用 values() 方法可以獲取字典中的所有值:
person = {
'name': 'Tom',
'age': 18,
'gender': 'Male'
}
values = person.values()
print(list(values)) # 輸出 ['Tom', 18, 'Male']
3、獲取字典中的所有鍵值對
使用 items() 方法可以獲取字典中的所有鍵值對:
person = {
'name': 'Tom',
'age': 18,
'gender': 'Male'
}
items = person.items()
print(list(items)) # 輸出 [('name', 'Tom'), ('age', 18), ('gender', 'Male')]
四、字典的應用場景
字典廣泛應用於需要快速查找數據的場合,比如:
1、快速查找
當數據量較大時,使用列表或元組進行查找可能會非常耗時。而使用字典可以快速定位到需要查找的數據,大大提高了查找的速度。
示例代碼:
student_info = {
'Tom': 'A',
'Jerry': 'B',
'Tina': 'A',
'Mike': 'B',
'Lily': 'C',
'Lucy': 'C'
}
result = student_info['Mike']
print(result) # 輸出 B
2、數據統計
使用字典可以方便地進行數據統計,比如統計字元串中每個字元出現的次數。
示例代碼:
str = 'hello,world'
char_counter = {}
for ch in str:
if ch in char_counter:
char_counter[ch] += 1
else:
char_counter[ch] = 1
print(char_counter) # 輸出 {'h': 1, 'e': 1, 'l': 3, 'o': 2, ',': 1, 'w': 1, 'r': 1, 'd': 1}
3、配置文件讀取
使用字典可以方便地讀取和操作配置文件。
示例代碼:
import json
config_file = open('config.json', 'r')
config_data = json.load(config_file)
config_file.close()
print(config_data['database']['host']) # 輸出 localhost
五、總結
字典是Python中十分重要的數據結構之一,它用於快速存儲和查找數據,方便進行數據統計和操作配置文件等操作。在實際的編程中,我們應該靈活運用字典,提高代碼效率和可讀性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/190688.html
微信掃一掃
支付寶掃一掃