嘿,我想知道是否有人知道如何创建10个增加长度列表的列表。第一个列表应该为空,即len(mylist[0]) == 0;
第二个列表应该有一个元素,所以len(mylist[1]) == 1;
等等。我一直在尝试使用extend
,append
和insert
,但无济于事
到目前为止,我已经能够创建10个没有元素的列表
def mylists(x):
d = [[] for x in range(0,x)]
return d
print (mylists(10)
非常感谢任何帮助!
答案 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]]