2013-04-04 52 views
0

如何从列表中删除偶数?从列表中删除偶数

a = [] 
i = 0 


while i < 10: 
    c = int(raw_input('Enter an integer: ')) 
    a.append(c) 
    i += 1 # this is the same as i = i + 1 
    for i in a: 
     if i % 2 == 0: 
      a.remove(i) 
print(a) 

这一直要求号码10已进入后也

+1

那么,如果你删除它们,你永远也不会达到10?尝试将其分成两部分。 – squiguy 2013-04-04 00:38:31

+2

对不同变量重复使用相同变量名称的错误,不好的做法。打电话给你的循环 - 我更具描述性,如柜台或类似的。最好尽快熟悉这一点 – 2013-04-04 00:39:53

+0

您正在通过第二个循环重置'i'。你需要使用一个不同的变量。 – Cfreak 2013-04-04 00:40:01

回答

3

为什么不防止追加,如果数量是偶数,而不是添加,然后检查删除?

a = [] 
counter = 0 
while counter < 10: 
    c = int(raw_input('Enter an integer: ')) 
    if c % 2 != 0: 
     a.append(c) 
    counter += 1 
print(a) 
2

ifor语句重新分配。使用一个不同的变量。

0

如果你想看到根据谓词列表如何“过滤器”,这里有一个例子:

a_without_even = filter(lambda x: x%2==1, a)