您的位置:

Python字典:高效地存储和访问键值对

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。