我是新来的,也是编程的。
我不知道我是否提出了正确的问题,但我一直试图从列表中生成子列表。
即
说如果L = range(5)
,则L
生成[[],[0],[0,1],[0,1,2],[0,1,2,3],[0,1,2,3,4]]
的子列表。
请帮助。感谢。
答案 0 :(得分:1)
看看这个:
>>> # Note this is for Python 2.x.
>>> def func(lst):
... return map(range, xrange(len(lst)+1))
...
>>> L = range(5)
>>> func(L)
[[], [0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4]]
>>>
答案 1 :(得分:0)
您还可以使用以下 for 循环生成您要求的子列表。
>>> L = range(5)
>>> l = []
>>> for i in range(len(L)+1):
l.append([j for j in range(i)])
>>> l
[[], [0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4]]
您还可以通过以下代码创建没有空子列表作为起始子列表的子列表:
>>> i = list(range(5))
>>> [i[:k+1] for k in i]
[[0], [0, 1], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3, 4]]