0

我是新来的,也是编程新手。

我不知道我是否提出了正确的问题,但我一直在尝试从列表中生成子列表。

IE

说如果,L = range(5)生成子列表。L[[],[0],[0,1],[0,1,2],[0,1,2,3],[0,1,2,3,4]]

请协助。谢谢。

4

2 回答 2

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]]
>>>
于 2013-10-27T23:00:14.790 回答
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]]
于 2013-10-29T22:42:34.150 回答