此问题在此处已有答案:
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)
2条答案
按热度按时间camsedfj1#
在遍历列表时改变列表是一个大禁忌。用你需要的项目重新创建列表可能会更容易:
hlswsv352#
您应该使用列表解析:
这样,在遍历列表时就不用编辑列表了。