字典是一种强大而灵活的数据结构,它允许你存储和操作键值对。让我们回顾一下在 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}
在此示例中,我们有两个字典 dict1
和 dict2
。我们使用 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_keys
和 sorted_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_obj
。print()
函数用于在控制台上显示 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 语句以写入模式打开文件。