一、字典是什麼
在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-hant/n/190688.html