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

假设在 python 中有一个数字输入 8,并且希望生成一个直到 8的连续数字列表,比如

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

你怎么能这么做?

315380 次浏览

In Python 3, you can use the builtin range function like this

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

Note 1: Python 3.x's range function, returns a range object. If you want a list you need to explicitly convert that to a list, with the list function like I have shown in the answer.

Note 2: We pass number 9 to range function because, range function will generate numbers till the given number but not including the number. So, we give the actual number + 1.

Note 3: There is a small difference in functionality of range in Python 2 and 3. You can read more about that in this answer.

Using Python's built in range function:

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]

Just to give you another example, although range(value) is by far the best way to do this, this might help you later on something else.

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]

Depending on how you want the result, you can also print each number in a for loop:

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

So if the user input was 7 for example:

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

You can also delete the '+1' in the for loop and place it on the print statement, which will change it to starting at 1 instead of 0.

Note :- Certainly in python-3x you need to use Range function It works to generate numbers on demand, standard method to use Range function to make a list of consecutive numbers is

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]

Also if you want to make an function to generate a list of consecutive numbers by using Range function watch this code !

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

Good Luck!

You can use itertools.count() to generate unbounded sequences. (itertools is in the Python standard library). Docs here:
https://docs.python.org/3/library/itertools.html#itertools.count

You can use list comprehensions for this problem as it will solve it in only two lines.

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)

Here is a way to generate n consecutive numbers in equal intervals between them starting from 0 to 100 using numpy:

import numpy as np


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