Python中的字典是一种无序的数据结构,可以高效地存储和访问键值对。Python中的字典是使用哈希表实现的,这使得字典的访问时间几乎是固定的,与字典的大小无关。
一、创建字典
要创建一个字典,可以使用花括号{}或者dict()函数。
# 使用{}创建字典 person = {'name': 'John', 'age': 25, 'address': 'New York'} # 使用dict()函数创建字典 person = dict(name='John', age=25, address='New York')
在字典中,每个键都必须是唯一的。如果同一个键被多次赋值,只会保留最后一个值。
person = {'name': 'John', 'age': 25, 'address': 'New York', 'age': 30} print(person['age']) #30
二、访问字典
要访问字典中的键值,可以使用中括号[]或者get()函数。如果键不存在,使用中括号会抛出键错误,而get()函数会返回None。
person = {'name': 'John', 'age': 25, 'address': 'New York'} # 使用中括号访问键值 print(person['name']) #John # 使用get()方法访问键值 print(person.get('address')) #New York
可以在使用中括号访问键值时,使用第二个参数作为默认值,以防止键错误。
person = {'name': 'John', 'age': 25, 'address': 'New York'} print(person.get('phone', 'Not available')) #Not available
三、添加和修改字典
要向字典中添加或修改键值,可以使用中括号[]或者update()方法。
# 添加键值 person = {'name': 'John', 'age': 25, 'address': 'New York'} person['phone'] = '555-1234' # 修改键值 person['age'] = 30 # 使用update()方法添加或修改键值 person.update({'email': 'john@example.com', 'age': 35})
四、删除键值
要从字典中删除键值,可以使用del语句或者pop()方法。
# 删除键值 person = {'name': 'John', 'age': 25, 'address': 'New York'} del person['address'] # 使用pop()方法删除键值 person.pop('age') # 删除字典中所有键值 person.clear()
五、遍历字典
要遍历字典中的所有键值,可以使用for循环。可以使用keys()方法访问所有的键,也可以使用values()方法访问所有的值。还可以使用items()方法访问所有的键值对。
person = {'name': 'John', 'age': 25, 'address': 'New York'} # 遍历所有的键 for key in person.keys(): print(key) # 遍历所有的值 for value in person.values(): print(value) # 遍历所有的键值对 for key, value in person.items(): print(key, value)
六、字典推导式
字典推导式可以根据已有的字典创建一个新的字典。可以使用if语句过滤需要的键值对。
person = {'name': 'John', 'age': 25, 'address': 'New York'} # 创建新的字典 new_person = {key: value for key, value in person.items() if key != 'address'} print(new_person)
七、使用defaultdict
defaultdict是一个字典子类,如果访问不存在的键,会返回一个默认值。这个默认值可以在创建defaultdict时指定。
from collections import defaultdict # 创建默认值为int的defaultdict d = defaultdict(int) # 访问不存在的键,返回默认值0 print(d['a']) # 默认值也可以是一个函数 s = 'mississippi' d = defaultdict(int) for letter in s: d[letter] += 1 print(d)
八、使用Counter
Counter是一个字典子类,用于计数可哈希对象。它可以用于统计列表中各个元素出现的次数。
from collections import Counter # 计数列表中各个元素出现的次数 words = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple'] word_counts = Counter(words) print(word_counts)
九、总结
字典在Python编程中非常重要,可以高效地存储和访问键值对。本文介绍了如何创建、访问、添加、修改、删除和遍历字典,以及如何使用字典推导式、defaultdict和Counter。