我是Python和编程的新手,所以我只是想学习一些基础知识。
基本上,我现在有一个用户输入n个整数,比如2,3和12.这些数字被放入一个名为“数字”的列表中。从该列表中,我希望每个号码都包含所有自然数字的新列表,包括该数字。
例如:
inputs = 2, 4, n
numbers = [2, 4, 10]
list 1 = [1, 2]
list 2 = [1, 2, 3, 4,]
list 3 = [1, 2, ..., n-1, n]
我最初的想法是对数字做一个for循环,但是如何实际制作n个列表却让我不知所措。
感谢任何帮助,谢谢!
答案 0 :(得分:2)
Pythons range()
函数对此很有用。
您必须列出一个列表,您可以将列表索引为:
list1 = list_of_list[0]
list2 = list_of_list[1]
list3 = list_of_list[2]
如果您按照提到的那样在列表中输入数字
>>>numbers = [2, 4, 10]
>>>list_of_list = [list(range(1, n+1)) for n in numbers]
输出如下:
>>>list_of_list
>>>[[1, 2], [1, 2, 3, 4], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]
这在python中称为列表推导。您正在迭代列表编号,并为每个编号调用范围并将其作为列表投射。
答案 1 :(得分:0)
您无法获得变量" list1"," list2"," list3"动态循环。你想要做的是用嵌套列表创建一个变量。
numbers = [2, 4, 6]
lists = [] // Initialize it as an empty list
这里每次迭代都会附加一个列表,其中包含从1到n + 1的序列,因此您可以使用第一个输入获得所需的[1,2]。
for n in numbers:
lists.append(range(1, n+1))
之后你总是可以把每个列表拿出来并把它放在它自己的变量中,但是必须添加一个" listx"每次更改输入都不是理想的。