📜  Python|迭代时从字典中删除项目(1)

📅  最后修改于: 2023-12-03 15:34:21.444000             🧑  作者: Mango

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

在Python中,如果我们迭代字典并试图删除其中的项,就会遇到一些问题。原因在于,在我们进行迭代时修改字典会导致字典大小的改变,从而导致迭代出现问题。

那么,我们该如何在迭代时从字典中删除项目呢?以下是一些解决方案。

一、创建副本并迭代副本进行删除

我们可以先创建字典的副本,然后在迭代副本的同时从原字典中删除项。

original_dict = {1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five'}
copy_dict = original_dict.copy()

for key, value in copy_dict.items():
    if key % 2 == 0:
        del original_dict[key]

print(original_dict)

输出结果是一个只包含奇数键值对的字典:{1: 'one', 3: 'three', 5: 'five'}。

二、使用字典推导式创建新字典

我们还可以使用字典推导式创建一个新的字典,其中不包含我们要删除的项。

original_dict = {1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five'}
new_dict = {k:v for k,v in original_dict.items() if k % 2 != 0}

print(new_dict)

输出结果同样是一个只包含奇数键值对的字典:{1: 'one', 3: 'three', 5: 'five'}。

以上两种方法都可以避免迭代时修改原字典所带来的问题,但选择哪种方法还是要视具体情况而定。