欢迎访问宙启技术站
智能推送

必知的Python字典函数和技巧

发布时间:2023-06-23 14:33:12

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字典技巧,希望这些对您有所帮助。