2014-07-08 102 views
0

我試圖通過在變量list100上使用for循環創建一個從1-100開始的偶數列表。在Python中使用for循環插入數據到列表中

list100 = range(101) 

for num in list100: 
    list_even = [] 
     if num % 2 == 0: 
      list_even.append(num) 
    print list_even 

然而,代替得到[2,4,6,8,10,12,14 ....],我得到:

[0] 
[] 
[2] 
[] 
[4] 
[] 
[6] 
. 
. 
. 
. 

請幫忙。 謝謝!

+0

感謝大家的幫忙! –

回答

2

您將在每次迭代時重置列表。嘗試:

list100 = range(101) 
list_even = [] 
for num in list100: 
    if num % 2 == 0: 
     list_even.append(num) 
print list_even 

雖然在另一個答案@koffein指出,

range(2,101,2) 

是更地道。

+0

'print'也需要移出循環。 – user2357112

0

可能更好地使用列表理解。

listeven = [x for x in range(101) if x % 2 == 0] 

不錯,容易!

1

這種方式並不使用for循環,但實際上我認爲更實用。

# python 2.x 
print range(2, 101, 2) 

# python 3.x 
print(list(range(2, 101, 2))) 
0
list100 = range(101) 
list_even = [] 
for num in list100: 

    if num % 2 == 0: 
      list_even.append(num) 
    print list_even 

這應該現在的工作。我的錯也是,我把數組放在循環中,所以項目被重置。

+1

不可以.OP想要獲得偶數列表。你的代碼沒有提供,因爲你在每個循環創建一個新的列表。 – koffein

+0

您是否嘗試過運行代碼sir @koffein? – bumbumpaw

+0

是,它打印約50列出了與一個單一的元素:'[0] [2] [4] [6] [8] [10] [12] [14] [16] [18] [20] [22] ...' – koffein