从列表创建顺序子列表

时间:2013-10-27 22:58:12

标签: python list sublist

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

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

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

请帮助。感谢。

2 个答案:

答案 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]]