如何在Python中从列表中删除奇数和偶数[duplicate]

qpgpyjmq  于 2022-12-17  发布在  Python
关注(0)|答案(2)|浏览(168)

此问题在此处已有答案

How to remove items from a list while iterating?(25个答案)
9小时前关门了。
在完成这个任务之后,我意识到它没有被正确执行,因为偶数和奇数仍然保留在列表中。我如何修复这个错误?或者有人知道在这种情况下如何将for循环替换为while循环吗
1.编写一些代码来删除list3中的任何偶数
1.编写一些代码删除list2中的奇数

list1 = ["\nroll", "burger", "cheese", "ketchup", "mustard"]
list2 = []
list3 = []

a = 0
while a < 10:
 a = a + 1
 userdata = input("Enter a whole number: ")
 usernum = int(userdata)
 list2.append(usernum) 

print (*list1, sep="\n")
list3 = list2.copy()

#remove even
print ("list3",list3)
for i in list3:
    div = i%2
    if div == 0:
        list3.remove(i)
print("remove even, list3",list3)

#remove odd
for x in list2:
    div = x%2
    if div != 0:
        list2.remove(x)
print("remove odd, list2", list2)
camsedfj

camsedfj1#

在遍历列表时改变列表是一个大禁忌。用你需要的项目重新创建列表可能会更容易:

list2 = [x for x in list2 if x % 2 == 0]
list3 = [x for x in list3 if x % 2 != 0]
hlswsv35

hlswsv352#

您应该使用列表解析:

list3_cleaned = [x for x in list3 if x % 2 != 0]
list2_cleaned = [x for x in list2 if x % 2 == 0]

这样,在遍历列表时就不用编辑列表了。

相关问题