我是新来的,也是编程新手。
我不知道我是否提出了正确的问题,但我一直在尝试从列表中生成子列表。
IE
说如果,L = range(5)
生成子列表。L
[[],[0],[0,1],[0,1,2],[0,1,2,3],[0,1,2,3,4]]
请协助。谢谢。
看这个:
>>> # 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]]
>>>
您还可以使用下面的 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]]