如何生成一串连续的数字列表?

93

假设在Python中您有一个数字输入8,并且您想生成连续的数字列表直到8,例如:

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

你怎么能这样做呢?


你有查看 range 的文档吗? - thefourtheye
8个回答

157
在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功能略有不同。你可以在这个答案中了解更多信息。


15
使用Python内置的range函数: 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]

5
以下是使用numpy生成从0到100之间间隔相等的n个连续数字的方法:
import numpy as np

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

1
请不要仅仅发布代码作为答案,还要提供代码的解释以及它是如何解决问题的。带有解释的答案通常更有帮助和更高质量,并且更有可能吸引赞同。 - Ran Marciano
当你发布一段代码时,请确保它能够运行。 在这里,你必须首先定义n。 - NoamG

2

举个例子,虽然range(value)是最好的方法,但这可能对你以后的某些其他事情有所帮助。

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]

1
你为什么每次都要将 calc 强制转换为 int 类型? - Nagabhushan S N

1

注意:在Python 3.x中,你需要使用Range函数。它可以按需生成数字,使用Range函数制作连续数字列表的标准方法是:

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]

如果你想编写一个函数,使用 Range 函数 生成一系列连续的数字列表,请看下面的代码!

def  consecutive_numbers(n) :
    list=[i for i in range(n)]
    return (list)
print(consecutive_numbers(10))

祝你好运!


1

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。


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


print(l1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接