在 Python 中将字典通过迭代进行修改

Python 中在遍历字典时修改字典:

  1. 使用 dict.copy() 方法迭代字典的副本。
  2. 在每次迭代中,检查是否满足条件。
  3. 如果满足条件,则修改字典。
my_dict = {
    'first_name': 'fql',
    'last_name': 'zadmei',
    'site': 'zadmei.com',
    'topic': 'Python'
}

for key in my_dict.copy():
    if my_dict[key] == 'Python':
        del my_dict[key]

        my_dict['new_key'] = 'new_value'


# 👇️ {'first_name': 'fql', 'last_name': 'zadmei', 'site': 'zadmei.com', 'new_key': 'new_value'}
print(my_dict)

在 Python 中将字典通过迭代进行修改

我们使用了 dict.copy() 方法来获取字典的副本。

dict.copy() 方法返回调用该方法的对象的浅表副本。

my_dict = {
    'first_name': 'fql',
    'last_name': 'zadmei',
    'site': 'zadmei.com',
    'topic': 'Python'
}

# 👇️ {'first_name': 'fqk', 'last_name': 'zadmei', 'site': 'zadmei.com', 'topic': 'Python'}
print(my_dict.copy())

这是必要的,因为我们不允许在迭代字典时修改字典。

但是,我们可以迭代字典的副本并修改原始字典的项目。

在每次迭代中,我们检查当前值是否等于特定字符串。

如果满足条件,我们可以使用 del 运算符从字典中删除键值对或添加新的键值对。

我们还可以迭代字典项目的副本。

my_dict = {
    'first_name': 'fql',
    'last_name': 'zadmei',
    'site': 'zadmei.com',
    'topic': 'Python'
}

for key, value in my_dict.copy().items():
    if value == 'Python':
        del my_dict[key]

        my_dict['new_key'] = 'new_value'


# 👇️ {'first_name': 'fql', 'last_name': 'zadmei', 'site': 'zadmei.com', 'new_key': 'new_value'}
print(my_dict)

dict.items 方法返回字典项((键,值)对)的新视图。

my_dict = {
    'first_name': 'fql',
    'last_name': 'zadmei',
    'site': 'zadmei.com',
    'topic': 'Python'
}

# 👇️ dict_items([('first_name', 'fql'), ('last_name', 'zadmei'), ('site', 'zadmei.com'), ('topic', 'Python')])
print(my_dict.items())

或者,我们可以使用 list() 类。


在使用 list() 遍历字典时修改字典

在遍历字典时修改字典:

  1. 使用 list() 类将字典转换为键列表。
  2. 使用 for 循环遍历键列表。
  3. 如果满足特定条件,则修改字典。
my_dict = {
    'first_name': 'fql',
    'last_name': 'zadmei',
    'site': 'zadmei.com',
    'topic': 'Python'
}


for key in list(my_dict):
    if my_dict[key] == 'Python':
        del my_dict[key]

        my_dict['new_key'] = 'new_value'


# 👇️ {'first_name': 'fql', 'last_name': 'zadmei', 'site': 'zadmei.com', 'new_key': 'new_value'}
print(my_dict)

我们使用 list() 类将字典转换为键列表。

my_dict = {
    'first_name': 'fql',
    'last_name': 'zadmei',
    'site': 'zadmei.com',
    'topic': 'Python'
}

print(list(my_dict))  # 👉️ ['first_name', 'last_name', 'site', 'topic']

print(list(my_dict.keys()))  # 👉️ ['first_name', 'last_name', 'site', 'topic']

我们也可以使用 dict.keys() 方法来更明确。

dict.keys 方法返回字典键的新视图。

在每次迭代中,我们检查是否满足某个条件,如果满足,我们修改字典。

我们不是遍历字典,而是遍历键列表。