必知的Python字典函数和技巧
Python中的字典是一种非常强大的数据结构,它提供了一种将键映射到值的方法。字典可以用于许多用途,例如存储配置,统计词频等等。本文将介绍一些Python字典的函数和技巧,以帮助您更好地使用它们。
一、字典的创建和基本操作
首先,让我们看看如何创建一个字典。字典可以通过{}或dict()函数来创建:
# 使用{}创建空字典
d = {}
# 使用dict()函数创建空字典
d = dict()
# 使用{}创建带有键值对的字典
d = {'apple': 2, 'banana': 3, 'orange': 4}
# 使用dict()函数创建带有键值对的字典
d = dict(apple=2, banana=3, orange=4)
字典中的键和值可以是任何类型,包括数字,字符串,列表,甚至是其他字典。
# 字典中的键和值可以是任何类型
d = {1: 'one', 'two': 2, 3.0: [3, 3, 3], (4, 4): {'four': 4}}
接下来,我们来看一些基本操作。字典中的值可以通过键来访问:
# 通过键来访问值
d = {'apple': 2, 'banana': 3, 'orange': 4}
print(d['apple']) # 输出2
字典中的值可以通过键来设置或修改:
# 通过键来设置或修改值
d = {'apple': 2, 'banana': 3, 'orange': 4}
d['apple'] = 5
print(d) # 输出{'apple': 5, 'banana': 3, 'orange': 4}
字典中的值可以通过del命令来删除:
# 通过del命令来删除键值对
d = {'apple': 2, 'banana': 3, 'orange': 4}
del d['apple']
print(d) # 输出{'banana': 3, 'orange': 4}
二、Python字典的函数
Python字典有许多有用的函数,这些函数可以用来操作或获取字典的内容。下面是一些常用的字典函数:
1. keys函数:返回字典中所有键的列表
d = {'apple': 2, 'banana': 3, 'orange': 4}
print(d.keys()) # 输出dict_keys(['apple', 'banana', 'orange'])
注意:Python 3中的keys函数返回的是一个视图对象,而不是一个列表。如果您需要一个列表,请使用list函数将其转换为一个列表。
2. values函数:返回字典中所有值的列表
d = {'apple': 2, 'banana': 3, 'orange': 4}
print(d.values()) # 输出dict_values([2, 3, 4])
同样地,Python 3中的values函数返回的是一个视图对象,而不是一个列表。如果您需要一个列表,请使用list函数将其转换为一个列表。
3. items函数:返回字典中所有键值对的元组列表
d = {'apple': 2, 'banana': 3, 'orange': 4}
print(d.items()) # 输出dict_items([('apple', 2), ('banana', 3), ('orange', 4)])
同样地,Python 3中的items函数返回的是一个视图对象,而不是一个列表。如果您需要一个列表,请使用list函数将其转换为一个列表。
4. get函数:根据给定的键返回相应的值
d = {'apple': 2, 'banana': 3, 'orange': 4}
print(d.get('apple')) # 输出2
如果给定的键不存在,get函数将返回None。
5. pop函数:根据给定的键删除并返回相应的值
d = {'apple': 2, 'banana': 3, 'orange': 4}
print(d.pop('apple')) # 输出2
print(d) # 输出{'banana': 3, 'orange': 4}
如果给定的键不存在,pop函数将引发KeyError异常。同时,pop函数还可以接受一个可选的参数,该参数表示如果给定的键不存在要返回的默认值。
6. setdefault函数:根据给定的键获取相应的值,如果键不存在,则设置默认值
d = {'apple': 2, 'banana': 3, 'orange': 4}
print(d.setdefault('apple', 5)) # 输出2
print(d.setdefault('pear', 5)) # 输出5
print(d) # 输出{'apple': 2, 'banana': 3, 'orange': 4, 'pear': 5}
setdefault函数的作用是获取给定键的值,如果该键不存在,则将该键设置为给定的值。
7. update函数:将一个字典的键值对更新到另一个字典中
d1 = {'apple': 2, 'banana': 3}
d2 = {'banana': 4, 'orange': 5}
d1.update(d2)
print(d1) # 输出{'apple': 2, 'banana': 4, 'orange': 5}
update函数将d2中的键值对添加到d1中。如果在d1和d2中都存在相同的键,则d2中的值将覆盖d1中的值。
8. clear函数:清空字典
d = {'apple': 2, 'banana': 3, 'orange': 4}
d.clear()
print(d) # 输出{}
三、更强大的Python字典技巧
在以上介绍的Python字典基础上,我们可以再介绍几个更强大的技巧:
1. 字典推导式:列表推导式的字典版本
# 列表推导式
l = [i for i in range(5)]
print(l) # 输出[0, 1, 2, 3, 4]
# 字典推导式
d = {str(i): i for i in range(5)}
print(d) # 输出{'0': 0, '1': 1, '2': 2, '3': 3, '4': 4}
字典推导式的语法与列表推导式类似,但使用大括号{}代替方括号[]来创建字典。字典推导式以键值对形式进行迭代,并通过冒号分隔键和值。
2. defaultdict:使用默认值初始化字典
from collections import defaultdict
d = defaultdict(int) # 默认值为0
d['apple'] += 2
print(d) # 输出defaultdict(<class 'int'>, {'apple': 2})
如果使用普通的字典,您需要手动检查键是否存在。使用defaultdict,您可以指定默认值。如果给定的键不存在,将使用默认值初始化字典。
3. Counter:用于计数的字典子类
from collections import Counter
lst = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
d = Counter(lst)
print(d) # 输出Counter({'apple': 3, 'banana': 2, 'orange': 1})
Counter是一个字典子类,用于计数。它可以接受序列类型的输入,并返回一个字典,其中每个元素都表示序列中该元素的出现次数。它还包含一些常用的函数,例如most_common函数,用于获取最常见的元素。
总结
Python的字典是一种非常强大的数据结构,可以用于许多用途。Python提供了许多有用的函数和技巧,可以更好地操作字典或提高生产力的效率。本文介绍了一些常用的字典函数和一些更强大的Python字典技巧,希望这些对您有所帮助。
