Python入门之Py字典
在Python中,字典是一种无序的数据类型,用于存储键值对。字典中的键必须是唯一的,而值可以是任何类型的对象。本攻略将介绍如何创建和操作Python字典,并提供两个示例。
创建字典
在Python中,我们可以使用花括号{}
或dict()
函数来创建字典。以下是创建字典的示例:
# 使用花括号创建字典
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
# 使用dict()函数创建字典
my_dict = dict(name='Bob', age=30, city='San Francisco')
在这个示例中,我们使用花括号和dict()
函数创建了两个字典。第一个字典包含三个键值对,分别是name
、age
和city
。第二个字典使用关键字参数创建,包含三个键值对,分别是name
、age
和city
。
访问字典中的值
在Python中,我们可以使用键来访问字典中的值。以下是访问字典中的值的示例:
# 访问字典中的值
print(my_dict['name']) # 输出:Bob
print(my_dict['age']) # 输出:30
print(my_dict['city']) # 输出:San Francisco
在这个示例中,我们使用键name
、age
和city
来访问字典中的值。我们使用print()
函数输出了这些值。
更新字典
在Python中,我们可以使用键来更新字典中的值。以下是更新字典的示例:
# 更新字典中的值
my_dict['age'] = 35
print(my_dict) # 输出:{'name': 'Bob', 'age': 35, 'city': 'San Francisco'}
在这个示例中,我们使用键age
来更新字典中的值。我们将age
的值从30
更新为35
,并使用print()
函数了更新后的字典。
删除字典
在Python中,我们可以使用del
语句来删除字典或字典中的元素。以下是删除字典的示例:
# 删除字典
del my_dict
print(my_dict) # 报错:NameError: name 'my_dict' is not defined
在这个示例中,我们使用del
语句删除了字典my_dict
。我们尝试使用print()
函数输出已删除的字典,但是会报错。
示例1:使用字典统计单词出现次数
以下是一个示例,展示如何使用字典统计单词出现次数:
# 统计单词出现次数
text = 'the quick brown fox jumps over the lazy dog'
words = text.split()
word_count = {}
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
print(word_count)
在这个示例中,我们使用split()
函数将文本分割成单词列表。我们创建了一个空字典word_count
,使用for
循环遍历单词列表。对于每个单词,我们检查它是否已经在字典中出现过。如果是,我们将它的计数器加1;否则,我们将它添加到字典中,并将计数器初始化为1。最后,我们使用print()
函数输出字典word_count
,它包含每个单词出现的数。
示例2:使用字典实现缓存
以下是另一个示例,展示如何使用字典实现缓存:
# 使用字典实现缓存
cache = {}
def expensive_function(arg):
if arg in cache:
return cache[arg]
else:
# 计算结果
result = arg * 2
# 将结果存入缓存
cache[arg] = result
return result
# 第一次调用函数
print(expensive_function(5)) # 输出:10
# 第二次调用函数
print(expensive_function(5)) # 输出:10,从缓存中获取结果
在这个示例中,我们定义了一个字典cache
,用于存储函数的计算结果。我们定义了一个昂贵的函数expensive_function()
,它需要一些时间来计算结果。在第一次调用函数时,我们计算结果并将其存入缓存中。在第二次调用函数时,我们从缓存中获取结果,而不是重新计算它。这样可以提高函数的性能。
结论
本攻略介绍了Python字典的创建、访问、更新和删除操作,并提供了两个示例。可以使用花括号或dict()
函数创建字典,使用键来访问和更新字典中的值,使用del
语句删除字典或字典中的元素。在实际中,我们可以使用字典来实现各功能,例如统计单词出现次数和实现缓存。