在Python中迭代时从字典中删除项目

python字典是无序,可变和索引的集合。它们具有键和值,并且使用键来引用每个项目。在本文中,我们将探讨从字典中删除项目的方法。

与键一起使用del

在这种方法中,我们捕获了需要删除的键值。一旦应用了del函数,这些键的键值对就会被删除。

示例

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

# Get keys with value in 2,3.
to_del = [key for key in ADict if key in(2,3)]

# Delete keys
for key in to_del: del ADict[key]

# New Dictionary
print(ADict)

输出结果

运行上面的代码给我们以下结果-

{1: 'Mon', 4: 'Thu', 5: 'Fri'}

通过键使用列表

我们可以创建一个包含字典中键的列表,还可以使用条件表达式选择要用于删除的键。在下面的示例中,我们仅通过将除法的余数与两个等于零的值进行比较来考虑具有偶数值的键。

示例

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

# Get keys with even value
for key in list(ADict):
if (key%2) == 0:
del ADict[key]

# New Dictionary
print(ADict)

输出结果

运行上面的代码给我们以下结果-

{1: 'Mon', 3: 'Wed', 5: 'Fri'}

使用项目删除

除了键,我们还可以使用字典中的项目删除值。但是在选择项目后,我们必须间接使用键来选择要删除的项目。

示例

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

NewDict = []
# Get keys with even value
for key,val in ADict.items():
if val in('Tue','Fri'):
NewDict.append(key)

for i in NewDict:
del ADict[i]

# New Dictionary
print(ADict)

输出结果

运行上面的代码给我们以下结果-

{1: 'Mon', 3: 'Wed', 4: 'Thu'}