一、字典基礎
字典(dictionary)是一種映射類型的數據結構,它是由鍵和值(key-value)組成的無序集合。字典類型在Python中的標識符為dict。字典的創建是通過多種方式來實現的,例如:
# 創建一個空字典
dict1 = {}
# 創建一個初始化的字典
dict2 = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
# 通過一系列key-value對創建字典
dict3 = dict(key1='value1', key2='value2', key3='value3')
字典類型的key必須是可哈希的,具體來說就是不能是可變的類型(例如列表或字典),而值可以是任何類型的Python對象。字典類型的元素沒有特定的順序,因此不能對其進行索引操作。字典類型可以通過鍵來訪問對應的值。舉例如下:
dict1 = {'name': 'Tom', 'age': 20}
# 通過key來訪問value
print(dict1['name']) # 輸出 Tom
# 通過遍歷key來訪問value
for key in dict1:
print(dict1[key])
二、字典操作方法
1. 更新字典元素
字典的元素可以修改、刪除或增加。修改元素的方法是通過鍵來引用對應的值,並將其設置為新值。如果鍵不存在,則會添加一個新的鍵值對。示例如下:
dict1 = {'name': 'Tom', 'age': 20}
# 修改元素
dict1['age'] = 21
print(dict1) # 輸出 {'name': 'Tom', 'age': 21}
# 增加元素
dict1['sex'] = 'male'
print(dict1) # 輸出 {'name': 'Tom', 'age': 21, 'sex': 'male'}
# 刪除元素
del dict1['sex']
print(dict1) # 輸出 {'name': 'Tom', 'age': 21}
2. 字典複製
字典類型可以通過複製來創建一個新的字典。當我們對複製後的字典進行修改時,原始字典不會受到影響。在Python中,有兩種類型的字典複製:淺複製和深複製。淺複製是創建一個新的字典對象,但其內部的元素是原始字典元素的引用。深複製是創建一個新的字典對象,它的內部元素也是新的對象。示例如下:
dict1 = {'name': 'Tom', 'age': 20}
# 淺複製
dict2 = dict1.copy()
dict2['age'] = 21
print(dict2) # 輸出 {'name': 'Tom', 'age': 21}
print(dict1) # 輸出 {'name': 'Tom', 'age': 20}
# 深複製
import copy
dict3 = copy.deepcopy(dict1)
dict3['age'] = 22
print(dict3) # 輸出 {'name': 'Tom', 'age': 22}
print(dict1) # 輸出 {'name': 'Tom', 'age': 20}
3. 字典合併
字典類型可以通過update方法來實現合併操作。Update方法會將一個字典對象的鍵值對添加到當前字典中。如果兩個字典存在相同的鍵(key),則會根據update的參數來決定是保留原始值還是使用新值。示例如下:
dict1 = {'name': 'Tom', 'age': 20}
dict2 = {'age': 21, 'sex': 'male'}
# 合併字典
dict1.update(dict2)
print(dict1) # 輸出 {'name': 'Tom', 'age': 21, 'sex': 'male'}
三、字典應用場景
1. 緩存
字典類型非常適用於緩存應用,因為它可以快速地查找和檢索數據。比如,我們可以把數據庫中的數據載入到一個字典中,然後針對這個字典進行操作:查詢、更新或刪除。緩存操作示例如下:
cache = {}
# 從數據庫中讀取數據
def load_data(key):
value = ...
cache[key] = value
return value
# 查詢緩存
def get_data(key):
if key in cache:
return cache[key]
return load_data(key)
# 更新緩存
def update_data(key, value):
cache[key] = value
2. 映射
字典類型可以用於映射不同類型的數據結構。例如,我們可以使用字典來映射一個字符串到一個列表,其值為出現該字符串的所有位置。映射示例如下:
text = 'Python is a popular language'
word_positions = {}
# 構建映射
for i, word in enumerate(text.split()):
if word not in word_positions:
word_positions[word] = [i]
else:
word_positions[word].append(i)
# 使用映射
print(word_positions['Python']) # 輸出 [0]
print(word_positions['a']) # 輸出 [2]
3. 統計
Python的字典類型非常適用於統計分析應用,它可以方便快捷地統計各類數據。例如,我們可以使用字典來統計一組數字的出現次數。統計示例如下:
num_list = [1, 2, 3, 3, 4, 4, 4, 5]
num_counts = {}
# 統計數字出現次數
for num in num_list:
if num not in num_counts:
num_counts[num] = 1
else:
num_counts[num] += 1
# 輸出結果
for num in num_counts:
print('%d出現了%d次' % (num, num_counts[num]))
以上就是Python字典的常用方法及用途解析,希望對大家有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/307300.html