Python:如何从n个输入中创建n个新列表?

时间:2016-03-30 00:37:38

标签: python list python-3.x

我是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个列表却让我不知所措。

感谢任何帮助,谢谢!

2 个答案:

答案 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"每次更改输入都不是理想的。