在 Python 中更改字典中的键

Najwa Riyaz 2023年10月10日
  1. 在 Python 中的字典中分配新键和删除旧键
  2. 在 Python 中使用 pop() 函数
  3. 在 Python 中使用 for 循环遍历字典并更改字典中的键
  4. 用 Python 重建一个全新的实例
  5. 在 Python 中使用 OrderedDict
  6. 在 Python 中使用 Pandas.DataFrame 函数
在 Python 中更改字典中的键

本文介绍了在 Python 中更改字典中的键的各种方法。

在 Python 中的字典中分配新键和删除旧键

要在 Python 中更改字典中的键,请按照以下步骤操作。

  1. 为旧键分配一个新键。
  2. 删除旧键。

参考下面的示例,它演示了这些步骤。

dict_ex[new_key] = dict_ex[old_key]
del dict_ex[old_key]

以下代码说明了此方法。

dict_ex = {1: "January", 2: "Febuary", 3: "March"}
print("Old dictionary-", dict_ex)
dict_ex[2.1] = dict_ex[2]
del dict_ex[2]
print("New dictionary-", dict_ex)

在这里,我们看到键的值 2 被值 2.1 替换。请注意更新的键值对如何移动到字典的末尾。

输出:

Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.1: 'Febuary'}

在 Python 中使用 pop() 函数

要在 Python 中更改字典中的键,请参考以下步骤。

  • 使用 pop 功能弹出旧键。按照这个例子。
    pop(old_key)
    
  • 为弹出的旧键分配一个新键。按照这个例子。
    dict_ex[new_key] = dict_ex.pop(old_key)
    

下面的例子说明了这一点。

dict_ex = {1: "January", 2: "Febuary", 3: "March"}
print("Old dictionary-", dict_ex)
dict_ex[2.2] = dict_ex.pop(2)
print("New dictionary-", dict_ex)

输出:

Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.2: 'Febuary'}

在这里,我们看到键的值 2 被值 2.2 替换。请注意更新的键值对如何移动到字典的末尾。

在 Python 中使用 for 循环遍历字典并更改字典中的键

为此,你首先获取目标字典和另一个包含新键值的字典。之后,你最终会使用 for 循环相应地切换所有键。

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print("Old dictionary-", dict_ex)
new_key_assign = {1: 111, 2: 2, 3: 3}
print("New dictionary-")
print(dict([(new_key_assign.get(key), value) for key, value in dict_ex.items()]))

在这里,我们看到键的值 1 被值 111 替换。请注意这次更新的键值对是如何保留的。

输出:

Old dictionary- {1: 'Jan', 2: 'Feb', 3: 'Mar'}
New dictionary-
{111: 'Jan', 2: 'Feb', 3: 'Mar'}

用 Python 重建一个全新的实例

在 Python 3.7+ 字典中,你可以保留顺序。为此,按如下方式重建字典的一个全新实例。

dict_ex = {"old_key": "Jan", 2: "Feb", 3: "Mar"}

{"new_key" if k == "old_key" else k: v for k, v in dict_ex.items()}

这里有一个例子来证明这一点。

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}

print({"one" if k == 1 else k: v for k, v in dict_ex.items()})

在这里,我们看到键的值 1 被值 one 替换。请注意这次更新的键值对是如何保留的。

输出:

{'one': 'Jan', 2: 'Feb', 3: 'Mar'}

在 Python 中使用 OrderedDict

在 Python 3.7+ 字典中,你可以通过使用 OrderedDict 和生成器表达式来保留排序。

请注意,你首先需要从 collections 导入 OrderedDict。然后,使用 OrderedDict 类。

from collections import OrderedDict

dict_ex = {"old_key": "Jan", 2: "Feb", 3: "Mar"}
OrderedDict(("new_key" if k == 1 else k, v) for k, v in dict_ex.items())

这里有一个例子,你可以参考。

from collections import OrderedDict

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
OrderedDict(("one" if k == 1 else k, v) for k, v in dict_ex.items())

在这里,我们看到键的值 1 被值 one 替换。请注意这次更新的键值对是如何保留的。

输出:

OrderedDict([('one', 'Jan'), (2, 'Feb'), (3, 'Mar')])

在 Python 中使用 Pandas.DataFrame 函数

你可以使用 Pandas 在 Python 中更改字典中的键。首先,导入 pandas 库。

然后,使用 DataFrame,如下所示。

import pandas as pd

old_dictionary = {"old_value": "Jan", 2: "Feb", 3: "Mar"}
new_dictionary = {"new_value": "Jan", 2: "Feb", 3: "Mar"}
df = pd.DataFrame([old_dictionary, new_dictionary])

检查这个示例程序。

import pandas as pd

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print(dict_ex)
new_dict_ex = {11: "Jan", 2: "Feb", 3: "Mar"}
df = pd.DataFrame([dict_ex, new_dict_ex])
print(new_dict_ex)

在这里,我们看到键的值 1 被值 11 替换。请注意这次更新的键值对是如何保留的。

输出:

{1: 'Jan', 2: 'Feb', 3: 'Mar'}
{11: 'Jan', 2: 'Feb', 3: 'Mar'}

相关文章 - Python Dictionary