如何生成连续数字列表?

时间:2015-04-10 09:34:50

标签: python list python-3.x

假设您在python中有一个数字输入8,并且您希望生成一个连续数字列表,最多为8,如

[0, 1, 2, 3, 4, 5, 6, 7, 8]

你怎么能这样做?

8 个答案:

答案 0 :(得分:81)

在Python 3中,您可以像这样使用内置range函数

>>> list(range(9))
[0, 1, 2, 3, 4, 5, 6, 7, 8]

注1: Python 3.x的range函数,返回一个range对象。如果你想要一个列表,你需要使用list函数将其显式转换为列表,就像我在答案中所示。

注2:我们将数字9传递给range函数,因为range函数会生成数字,直到给定数字但不包括数字。所以,我们给出实际数字+ 1。

注3: Python 2和3中range的功能略有不同。您可以在this answer中详细了解该内容。

答案 1 :(得分:4)

使用Python的内置范围功能:

Python 2

input = 8
output = range(input + 1)

print output
[0, 1, 2, 3, 4, 5, 6, 7, 8]

Python 3

input = 8
output = list(range(input + 1))

print(output)
[0, 1, 2, 3, 4, 5, 6, 7, 8]

答案 2 :(得分:2)

只是给你另一个例子,虽然范围(值)是迄今为止最好的方法,但这可能会帮助你以后做其他事情。

list = []
calc = 0

while int(calc) < 9:
    list.append(calc)
    calc = int(calc) + 1

print list
[0, 1, 2, 3, 4, 5, 6, 7, 8]

答案 3 :(得分:2)

这是一种使用 numpy 从 0 到 100 以相等间隔生成 n 个连续数字的方法:

import numpy as np

myList = np.linspace(0, 100, n)

答案 4 :(得分:1)

您可以使用itertools.count()来生成无界序列。 (itertools在Python标准库中)。此处的文档:
https://docs.python.org/3/library/itertools.html#itertools.count

答案 5 :(得分:0)

根据您希望的结果,您还可以在for循环中打印每个数字:

def numbers():
    for i in range(int(input('How far do you wanna go? '))+1):
        print(i)

因此,如果用户输入为7,例如:

How far do you wanna go? 7
0
1
2
3
4
5
6
7

你也可以删除for循环中的'+1'并将其放在print语句上,这将把它改为1而不是0。

答案 6 :(得分:0)

注意: - 当然在python-3x中你需要使用范围功能它可以按需生成数字,标准方法使用范围功能制作连续数字列表

x=list(range(10))
#"list"_will_make_all_numbers_generated_by_range_in_a_list
#number_in_range_(10)_is_an_option_you_can_change_as_you_want
print (x)
#Output_is_ [0,1,2,3,4,5,6,7,8,9]

此外,如果您想通过范围功能使功能生成连续数字列表,请观看此代码!

def  consecutive_numbers(n) :
    list=[i for i in range(n)]
    return (list)
print(consecutive_numbers(10))
祝你好运!

答案 7 :(得分:0)

您可以使用列表推导解决此问题,因为它仅需两行即可解决。 代码

n = int(input("Enter the range of the list:\n"))
l1 = [i for i in range(n)] #Creates list of numbers in the range 0 to n
if __name__ == "__main__":
    print(l1)

谢谢。