在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'}

使用包含键的列表

我们可以创建一个包含字典中键的列表,并使用条件表达式来选择用于删除的键。在下面的示例中,我们只考虑了值是偶数的键(通过判断除以2的余数是否等于零)。

示例

 实时演示

# 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'}

使用items删除

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

示例

 实时演示

# 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'}

更新于:2020年5月4日

436 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告