2013-04-04 44 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)