假设您在python中有一个数字输入8
,并且您希望生成一个连续数字列表,最多为8
,如
[0, 1, 2, 3, 4, 5, 6, 7, 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)
谢谢。