【发布时间】:2015-11-25 18:42:15
【问题描述】:
我当前的代码使用 for 循环,我试图从列表 3 中删除偶数,从列表 2 中删除奇数。 但是我的问题是,当 for 循环迭代时,位置 2 中的项目在删除项目后向下移动到位置 1,因此它会跳过一个项目并且代码无法按预期工作
list1 = ["roll", "burger", "cheese", "ketchup", "mustard"]
list2 = []
list3 = []
for i in list1:
print(i)
#code to add ten numbers to list2
a = 0
while a < 10:
a = a + 1
userdata = input("Enter a whole number: ")
usernum = int(userdata)
list2.append(usernum)
list3[:0]=list2
print(list3)
for n in list2:
if int(n) % 2 != 0:
list2.remove(n)
print(list2)
for x in list3:
if int(x) % 2 == 0:
list3.remove(x)
print(list3)
如何使这段代码使用 for 循环删除偶数和奇数而不跳过任何数字?
【问题讨论】:
-
您真的想就地制作它吗?代替列表推导怎么样?
-
例如,您可以创建一个新列表并将所需的值推入其中,而不是从您正在迭代的列表中删除它们
-
或者,您可以在输入阶段附加到所需的列表。
-
您可以在
list()中附上您的列表,以便在迭代时进行复制,但删除将在原始列表中进行。 -
您为回答者赢得了大量代表,恭喜!
标签: python