跳至主要内容

字典的基本操作

Basic Operations with Dictionaries

字典是一种强大而灵活的数据结构,它允许你存储和操作键值对。让我们回顾一下在 Python 中的字典 上可以执行的一些常见操作和方法。

向字典中添加元素

有几种向字典中添加项目的方法。

值赋值

要向 Python 字典中添加键值对,可以使用以下语法

my_dict[key] = value

此处,my_dict 是你想要向其中添加元素的字典,key 是新元素的键,value 是新元素的值。

例如,如果你有一个空字典,并且想要向其中添加一个新项目,其键为 "name",值为 "John",则可以执行以下操作

my_dict = {}
my_dict["name"] = "John"
print(my_dict) # Output: {'name': 'John'}.

如果键已存在于字典中,则其值将更新为新值。如果键不存在,则会向字典中添加一个新的键值对。

update() 方法

update() 方法将另一个字典作为参数,并将其键值对添加到原始字典中。如果键已存在于原始字典中,则其值将更新为新字典中的值。

以下是一个示例

my_dict = {'a': 1, 'b': 2}
new_dict = {'c': 3, 'd': 4}

my_dict.update(new_dict)

print(my_dict)  # Output: {'a': 1, 'b': 2, 'c': 3, 'd': 4}

注意:字典没有内置的 append() 方法,因为字典没有固有顺序。因此,你无法使用 append() 方法追加元素。

从字典中删除元素

要从 Python 中的字典中删除项目,可以使用 del 关键字以及字典键。

以下是如何从字典中删除键及其值的示例

# create a dictionary
my_dict = {'a': 1, 'b': 2, 'c': 3}

# delete an element with key 'b'
del my_dict['b']

# print the updated dictionary
print(my_dict) # Output: {'a': 1, 'c': 3}

在上面的示例中,del 关键字用于从字典 my_dict 中删除键为 'b' 的键值对。生成的字典仅包含键为 'a''c' 的元素。

Python 中的字典迭代或循环

我们将向你展示如何使用 for 循环在 Python 中迭代字典。以下是一些迭代方法

  • 迭代键
# create a dictionary
my_dict = {'a': 1, 'b': 2, 'c': 3}

# iterate over the keys and print them
for key in my_dict:
    print(key)

输出

a
b
c
  • 迭代值
# create a dictionary
my_dict = {'a': 1, 'b': 2, 'c': 3}

# iterate over the values and print them
for value in my_dict.values():
    print(value)

输出

1
2
3
  • 迭代键值对
# create a dictionary
my_dict = {'a': 1, 'b': 2, 'c': 3}

# iterate over the key-value pairs and print them
for key, value in my_dict.items():
    print(key, value)

输出

a 1
b 2
c 3

在第三个示例中,我们使用字典的 items() 方法获取键值对列表。然后,我们使用元组拆包从每对中提取键和值并打印它们。

我们在示例中使用了 for,但是,当然,你也可以使用 while 在 Python 中循环遍历字典。

在 Python 中合并字典

你可以使用前面提到的 update() 方法合并两个字典。update() 方法将一个字典中的键值对添加到另一个字典中。如果键已存在于目标字典中,则相应的值将使用新值更新。

以下是一个示例

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}

dict1.update(dict2)

print(dict1) # Output: {'a': 1, 'b': 3, 'c': 4}

在此示例中,我们有两个字典 dict1dict2。我们使用 update() 方法将 dict2 合并到 dict1 中。结果字典为 {'a': 1, 'b': 3, 'c': 4}

注意:调用 update() 方法时,它会修改调用它的字典。如果您不想修改原始字典,则可以创建一个新字典并使用 update() 方法合并这两个字典。

有序或已排序字典

在 Python 3.7 及更高版本中,保证字典按添加顺序维护其项目的顺序。这意味着字典中的项目将按插入顺序进行迭代。

在 Python 3.7 之前,字典不保留其项目的顺序,并且迭代字典会以任意顺序返回其项目。

您可以按其键或值对字典进行排序。可以使用内置的 sorted() 函数对字典进行排序,该函数按排序顺序返回字典的键或值的列表。例如

my_dict = {'c': 3, 'a': 1, 'b': 2}

# sort by keys
sorted_dict_by_keys = {k: my_dict[k] for k in sorted(my_dict)}

# sort by values
sorted_dict_by_values = {k: v for k, v in sorted(my_dict.items(), key=lambda item: item[1])}

请注意,在上述示例中,原始字典 my_dict 未被修改,而是创建了两个新字典 sorted_dict_by_keyssorted_dict_by_values

打印字典

要在 Python 中打印字典,可以使用内置的 print() 函数。根据您希望如何设置输出格式,有不同的方法来打印字典。

以下是如何打印字典的一个示例

my_dict = {'apple': 1, 'pineapple': 2, 'orange': 3}

# Print the dictionary using the print() function
print(my_dict)

这将输出以下内容

{'apple': 1, 'pineapple': 2, 'orange': 3}

如果您希望在单独的行上打印字典的每个键值对,则可以使用 for 循环迭代字典并打印每个项目

my_dict = {'apple': 1, 'pineapple': 2, 'orange': 3}

# Print each key-value pair on a separate line
for key, value in my_dict.items():
    print(key, ":", value)

这将输出以下内容

apple : 1
pineapple : 2
orange : 3

Python 中的字典到 JSON 转换

您可以在 Python 中使用内置的 json 模块将字典转换为 JSON 格式。

以下是一个示例代码段

import json

# sample dictionary
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

# convert dictionary to JSON
json_obj = json.dumps(my_dict)

# print the JSON object
print(json_obj)

在此示例中,json.dumps() 函数用于将字典 my_dict 转换为 JSON 对象 json_objprint() 函数用于在控制台上显示 JSON 对象。

输出

{"name": "John", "age": 30, "city": "New York"}

您还可以使用 json.dump() 函数将 JSON 对象保存到文件中。以下是一个示例

import json

# sample dictionary
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}

# save dictionary to a JSON file
with open('data.json', 'w') as f:
    json.dump(my_dict, f)

在此示例中,json.dump() 函数用于将字典 my_dict 保存到名为 data.json 的文件中。使用 with 语句以写入模式打开文件。

与我们一起贡献!

不要犹豫,在 GitHub 上为 Python 教程做出贡献:创建分支、更新内容并发出拉取请求。

Profile picture for user almargit
Python 开发人员、内容经理。
Profile picture for user AliaksandrSumich
更新时间:05/03/2024 - 21:53
Profile picture for user angarsky
已审阅和批准