简体   繁体   English

使用Python中的for循环将数据插入列表

[英]Inserting data into a list using the for loop in Python

I'm trying to create a list of even numbers from 1-100 by using a for loop on my variable list100 . 我正在尝试通过在变量list100上使用for循环来创建1-100之间的偶数列表。

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

However, instead of getting [2,4,6,8,10,12,14 ....], I receive: 但是,我没有得到[2,4,6,8,10,12,14 ....],而是得到:

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

Please help. 请帮忙。 Thank you!! 谢谢!!

You are resetting the list at every iteration. 您将在每次迭代时重置列表。 Try: 尝试:

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

though as @koffein points out in another answer, 尽管@koffein在另一个答案中指出,

range(2,101,2)

is more idiomatic. 更习惯。

This way does not use a for loop, but is actually more idiomatic, I think. 我认为这种方式不使用for循环,但实际上更惯用了。

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

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

Probably better to use list comprehension. 使用列表理解可能更好。

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

Nice and easy! 好,易于!

list100 = range(101)
list_even = []
for num in list100:

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

this should work now. 现在应该可以了。 My fault also that i put the array inside loop so the item is resetting. 我的错还在于我将数组放入循环中,因此该项目正在重置。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM