创建增加长度python的列表

时间:2017-09-01 04:19:10

标签: python list

嘿,我想知道是否有人知道如何创建10个增加长度列表的列表。第一个列表应该为空,即len(mylist[0]) == 0;第二个列表应该有一个元素,所以len(mylist[1]) == 1;等等。我一直在尝试使用extendappendinsert,但无济于事

到目前为止,我已经能够创建10个没有元素的列表

def mylists(x):    
    d = [[] for x in range(0,x)]
    return d

print (mylists(10)

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

你可以这样做:

print([[i]*i for i in range(10)])

答案 1 :(得分:1)

试试这个:

super_list = []
for i in range(10):
    super_list.append(list(range(i))) # .append(range(i)) suffices for python2

您可能需要根据所需的结果调整范围。 10次​​迭代将为您提供十个列表,如下所示:

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

如果您想以更functional的方式进行此操作,这将在Python 2中实现相同的结果:

map(range, range(10))

或者在Python 3中:

list(map(lambda i: list(range(i)), range(10)))

答案 2 :(得分:0)

>>> [[i for i in range(n)] for n in range(1,8,1)]
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5, 6]]

使用方法

>>> def test(n):
...     return [[i for i in range(m)] for m in range(1,n+2,1)]
... 
>>> 
>>> print test(5)
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4, 5]]