如何在 Python 中检查字典是否包含特定键

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何在 Python 中检查字典是否包含特定的键。字典以键值对的形式存储数据,是一种基本的数据结构。

本实验将引导你通过 .keys() 方法探索字典的键,并将生成的视图对象转换为列表。你还将学习如何使用 in 运算符和 get() 方法来高效地确定字典中是否存在特定的键。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/booleans("Booleans") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/DataStructuresGroup -.-> python/dictionaries("Dictionaries") python/ErrorandExceptionHandlingGroup -.-> python/catching_exceptions("Catching Exceptions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/booleans -.-> lab-559503{{"如何在 Python 中检查字典是否包含特定键"}} python/conditional_statements -.-> lab-559503{{"如何在 Python 中检查字典是否包含特定键"}} python/dictionaries -.-> lab-559503{{"如何在 Python 中检查字典是否包含特定键"}} python/catching_exceptions -.-> lab-559503{{"如何在 Python 中检查字典是否包含特定键"}} python/data_collections -.-> lab-559503{{"如何在 Python 中检查字典是否包含特定键"}} end

探索字典的键

在这一步中,你将学习如何在 Python 中访问字典的键。字典是一种基本的数据结构,它以键值对的形式存储数据。了解如何检索键对于有效地使用字典至关重要。

首先,让我们创建一个简单的字典来进行操作。在 LabEx 环境中打开 VS Code 编辑器,并在 ~/project 目录下创建一个名为 dictionary_keys.py 的新文件。

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

现在,让我们探索如何访问这个字典的键。Python 为此提供了 .keys() 方法。将以下代码添加到你的 dictionary_keys.py 文件中:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

keys = my_dict.keys()
print(keys)

保存文件,并在终端中使用以下命令运行脚本:

python dictionary_keys.py

你应该会看到以下输出:

dict_keys(['name', 'age', 'city'])

输出显示了一个“dict_keys”对象,它是一个视图对象,显示了字典中所有键的列表。

要将这个视图对象转换为列表,你可以使用 list() 函数。按如下方式修改你的 dictionary_keys.py 文件:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

keys = list(my_dict.keys())
print(keys)

保存文件并再次运行脚本:

python dictionary_keys.py

现在,输出将是一个键的列表:

['name', 'age', 'city']

你现在可以遍历这个列表并对每个键执行操作。例如,你可以单独打印每个键:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

keys = list(my_dict.keys())
for key in keys:
    print(key)

保存文件并运行脚本:

python dictionary_keys.py

输出将是:

name
age
city

这展示了如何在 Python 中访问和遍历字典的键。理解这个概念对于有效地操作和从字典中提取信息至关重要。

使用 in 运算符

在这一步中,你将学习如何使用 in 运算符来检查字典中是否存在某个键。in 运算符是一种强大的工具,可用于判断键是否存在,且不会引发错误。

让我们继续使用上一步中创建的字典。如果你没有 dictionary_keys.py 文件,请在 ~/project 目录下再次创建该文件,并包含以下内容:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

现在,让我们使用 in 运算符来检查字典中是否存在特定的键。将以下代码添加到你的 dictionary_keys.py 文件中:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

if "name" in my_dict:
    print("The key 'name' exists in the dictionary.")
else:
    print("The key 'name' does not exist in the dictionary.")

保存文件,并在终端中使用以下命令运行脚本:

python dictionary_keys.py

你应该会看到以下输出:

The key 'name' exists in the dictionary.

这证实了键 "name" 存在于字典中。

现在,让我们检查一个不存在的键。按如下方式修改你的 dictionary_keys.py 文件:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

if "country" in my_dict:
    print("The key 'country' exists in the dictionary.")
else:
    print("The key 'country' does not exist in the dictionary.")

保存文件并再次运行脚本:

python dictionary_keys.py

输出将是:

The key 'country' does not exist in the dictionary.

这展示了如何使用 in 运算符来检查字典中键的存在性。在尝试访问键的值之前,这是一种安全且高效的判断键是否存在的方法。

如果键存在,in 运算符返回 True,否则返回 False。你可以在条件语句或其他逻辑操作中使用这个布尔值。

使用 get() 方法进行检查

在这一步中,你将学习如何使用 get() 方法安全地访问字典的值。get() 方法提供了一种检索与键关联的值的方式,并且允许你指定一个默认值,以便在键不存在时返回。这可以防止你的程序因 KeyError 异常而崩溃。

让我们继续使用前几步中创建的字典。如果你没有 dictionary_keys.py 文件,请在 ~/project 目录下再次创建该文件,并包含以下内容:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

现在,让我们使用 get() 方法来检索与键 "name" 关联的值。将以下代码添加到你的 dictionary_keys.py 文件中:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

name = my_dict.get("name")
print(name)

保存文件,并在终端中使用以下命令运行脚本:

python dictionary_keys.py

你应该会看到以下输出:

Alice

get() 方法成功检索到了与键 "name" 关联的值。

现在,让我们尝试检索与一个不存在的键(如 "country")关联的值。按如下方式修改你的 dictionary_keys.py 文件:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

country = my_dict.get("country")
print(country)

保存文件并再次运行脚本:

python dictionary_keys.py

输出将是:

None

默认情况下,如果键不存在,get() 方法会返回 None。这可以防止引发 KeyError

你还可以指定一个默认值,以便在键不存在时返回。按如下方式修改你的 dictionary_keys.py 文件:

## Content of dictionary_keys.py
my_dict = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

country = my_dict.get("country", "Unknown")
print(country)

保存文件并运行脚本:

python dictionary_keys.py

输出将是:

Unknown

在这种情况下,由于键 "country" 不存在于字典中,get() 方法返回了我们指定的默认值 "Unknown"

在处理字典时,使用 get() 方法是一种最佳实践,因为它允许你优雅地处理键可能不存在的情况,避免错误并使你的代码更健壮。

总结

在本次实验中,你首先探索了如何在 Python 中访问字典的键。你学习了如何创建字典,并使用 .keys() 方法来获取一个包含字典所有键的视图对象。

接着,你学习了如何使用 list() 函数将这个视图对象转换为列表,这样你就可以遍历这些键并对它们执行操作,例如逐个打印每个键。