如何使用值从 Python 字典中提取键?

2025年1月5日 | 阅读 4 分钟

引言

字典是 Python 中一种可变的内置数据结构,用于存储键值对的集合。它用大括号 {} 定义,键和值之间用冒号 : 分隔,键值对之间用逗号 , 分隔。与列表或元组不同,字典是无序的,这意味着其中的项没有固定的顺序。

字典的键必须是唯一的且不可变的,也就是说,一旦分配,就不能更改。通常用作键的不可变类型包括字符串、整数和元组。另一方面,值可以是可变的,并且可以是任何类型的数据。

字典在需要快速数据检索的情况下非常有用,因为它们提供了高效的查找、插入和删除操作。它们广泛应用于各种编程场景,包括配置存储、将唯一标识符映射到值以及数据结构表示(例如 JSON)。

字典的项是通过引用其匹配的键来访问的。如果键存在,则返回相应的值;如果不存在,则会引发 KeyError。此外,字典还允许通过多种方式动态添加、更新和删除键值对。

键值对的概念

键值对是编程中的基本概念,尤其是在字典等数据结构中。一个键值对包含两个相关联的数据项:一个键,它充当唯一的标识符;以及一个与该键相关联的值。

以下总结了有关键值对的主要思想:

键在集合或数据结构中充当唯一的标识符。
键在分配后必须是不可变的,也就是说,它们必须是不可变对象。元组、整数和字符串是常见的键类型。

与键相关联的数据就是键值对所包含的内容。
值可以是可变的也可以是不可变的,并且可以代表任何类型的数据。

  • 关联 (Association)

集合中每个键只关联一个值。

  • 键的唯一性

在大多数键值集合实现中,键必须是唯一的。
这确保了一个键只能与一个值相关联。

  • 使用键访问值

使用匹配的键轻松获取值是键值对的主要特性之一。
通常,通过键直接查找来实现这种访问。

  • 可变性

与键相关联的值可以是固定的也可以是可变的,这取决于数据结构和编程语言。
例如,在 Python 中,键和值都可以是可变的。

从字典值中检索键的各种技术

1) 使用循环

遍历字典中的每个键值对(例如,使用 items() 函数或 for 循环)。
检查实际值是否与目标值匹配。
如果找到匹配项,则执行所需的操作或将匹配的键添加到列表中。
虽然这种方法简单易懂,但在处理大型字典时,它可能需要额外的代码,从而可能导致执行速度变慢。

语法

2) 字典推导式

使用字典推导式创建一个新字典,其中值是原始字典中的键,键是原始字典中的值。

将指定的值(或值)作为过滤器应用于新字典。

这种方法提供了一个清晰易懂的结果。

语法

3) 反转字典

创建一个反向字典,其中值是原始字典中的键,键是原始字典中的值。

使用反向字典通过目标值或值来访问键。

此方法需要更多内存来存储反向字典,但它更简单且易于阅读。

语法

4) 使用列表推导式

使用列表推导式,通过迭代字典项并根据需要的值或值进行过滤来提取键。

与创建新字典不同,此技术直接提供键,并且提供了一种类似于字典推导式的简洁方法。

语法

5) 使用字典推导式和 zip()

使用 zip() 方法交换键和值后,使用字典推导式进行基于值的过滤。

此方法结合了字典推导式和 zip() 的优点,提供了一种快速易用的解决方案。

语法