一、字典的定義與特點
Python中的字典是一種鍵-值對(key-value)存儲的數據結構,其它編程語言中也有類似結構,比如JavaScript的對象,Java的HashMap。字典的特點在於通過一個唯一的鍵(key)來關聯一個值(value),這與列表(list)、元組(tuple)等線性數據結構不同。
字典可以使用花括號({})或者dict()函數來創建,在花括號中用逗號分隔鍵-值對,每個鍵值對使用冒號(:)進行分割。
# 創建字典 person = {'name': 'Jack', 'age': 20, 'city': 'New York'} # 使用dict()創建字典 person = dict(name='Jack', age=20, city='New York')
字典的特點在於其快速查詢,由於不需要按照順序進行查找,可以在O(1)的時間複雜度內找到元素。此外,字典中的鍵必須是不可變的對象,例如字符串、數字、元組等,而值可以是任意類型的對象。
二、字典的基本操作
添加、修改、刪除
可以通過索引的方式對字典進行添加、修改操作,如果鍵存在則為修改,不存在則為添加。刪除操作可以使用del關鍵字刪除指定的鍵-值對。
person = {'name': 'Jack', 'age': 20, 'city': 'New York'} # 添加鍵-值對 person['phone'] = '1234567' # 修改鍵-值對 person['age'] = 21 # 刪除鍵-值對 del person['city']
遍歷字典
可以使用for循環遍歷字典中的所有鍵-值對,也可以通過keys()、values()、items()方法分別獲取字典中的鍵、值、鍵-值對。
person = {'name': 'Jack', 'age': 20, 'city': 'New York'} # 遍歷所有鍵-值對 for key, value in person.items(): print(key, value) # 遍歷所有鍵 for key in person.keys(): print(key) # 遍歷所有值 for value in person.values(): print(value)
查詢字典
可以使用in關鍵字查詢字典中是否包含指定的鍵,也可以通過get()方法獲取指定鍵的值,如果鍵不存在則返回None或者自定義的默認值。
person = {'name': 'Jack', 'age': 20, 'city': 'New York'} # 查詢鍵是否存在 if 'phone' in person: print(person['phone']) # 通過get()獲取值 print(person.get('age', 18))
三、字典的高級技巧
字典推導式
與列表推導式類似,字典推導式可以通過一行代碼來快速生成字典,格式為{key_expression: value_expression for expression in iterable}。
# 生成字典{name: len(name)} names = ['Tom', 'Jerry', 'Spike'] name_length = {name: len(name) for name in names}
默認字典
默認字典(defaultdict)是Python內置模塊collections提供的一種字典子類,當查詢的鍵不存在時,會返回一個默認值而不是拋出異常。默認字典可以通過設置一個工廠函數來指定默認值的類型。
from collections import defaultdict # 創建默認字典,指定默認值為int類型 dd = defaultdict(int) # 增加鍵a的值,由於a不存在,默認值為0 dd['a'] += 1 print(dd['a']) # 創建默認字典,指定默認值為list類型 dd = defaultdict(list) dd['list'].append(1) print(dd['list'])
OrderedDict
OrderedDict是Python內置模塊collections提供的一種字典子類,在普通字典的基礎上,為插入順序維護了一個雙向鏈表,因此可以保證元素的順序與添加時的順序相同。
from collections import OrderedDict # 創建有序字典 od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 print(od)
Counter
Counter是Python內置模塊collections提供的一種字典子類,用於統計元素出現的次數,其返回一個類似字典的容器,其中元素名為鍵,元素個數為值。
from collections import Counter # 統計字符串中單詞出現次數 words = 'this is a sample sentence' word_count = Counter(words.split()) print(word_count)
四、總結
字典是Python中極為常用的數據結構之一,其使用靈活、高效、便捷,可以應用於各種場景。掌握字典的基本操作以及一些高級技巧,可以提高編程效率,減少錯誤。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/248767.html