2012-07-28 58 views
-2

如何将for循环中的所有数字输入到列表中?范围内的列表

例如:

for i in range(0, 5): 
    # I want to produce this list: [0,1,2,3,4] 
+4

你近了......如果你阅读'range'文档,我想你会发现它:http://docs.python.org/library/functions.html#range – 2012-07-28 14:34:57

+2

呃为什么你完全改变你的问题?不要这样做,如果你有另一个问题,请问一个新问题。也许官方的Python教程会帮助你很好:http://docs.python.org/tutorial/ – 2012-07-28 14:43:03

+1

你使用的是python 3吗?在这种情况下'范围'行为有所不同。 – phg 2012-07-28 14:43:43

回答

1
def naturalNumbers(n): 
    return range(1,n+1) 

为Python 3,

def naturalNumbers(n): 
    return list(range(1,n+1)) 
+0

谢谢。我使用python 3 btw。 – Reginald 2012-07-28 14:51:28

+1

你确定你需要*一个*列表*?或者只是可迭代的东西? – 2012-07-28 15:18:15

1

菲利克斯是正确的,只是使用范围(N,M)功能。从文档(http://docs.python.org/library/functions.html#range),第一句说:

这是一个多功能的函数来创建包含算术级数的列表。

从你的示例代码中,你已经知道如何使用,只是没有意识到它返回一个列表,它不是for循环本身的一部分。

1

的问题是,我不知道如何输入这些数字到一个列表

虽然list(range(1, n+1))方法已经是你能做的最好的事情,我还是想回答这个问题所以你可以在以后建立不同的列表:

> myList = [] # create an empty list 
> myList.append(2) # append 2 to the list 
> myList 
[2] 
>>> myList += [1] # concat with a single-item list 
>>> myList 
[2, 1] 
>>> for i in range(3, 10, 2): # add multiple items 
     myList.append(i) 

>>> myList 
[2, 1, 3, 5, 7, 9] 
+0

谢谢,这些非常有用。 – Reginald 2012-07-28 18:33:51

0

由于答案还没有明确给出尚未:

myList = list(range(0,5)) 
+0

为什么选择倒票? – 2012-07-29 00:54:02