以高效/ pythonic方式从列表生成以下子集

时间:2015-11-12 23:51:11

标签: python python-2.7 itertools

从列表[1,2,3,4]我想获得[[1],[1,2],[1,2,3],[1,2,3,4]]。我不确定这是什么叫(如果有的话),或许类似跟随子集

我目前的做法是:

def following_subsets(parts):
    following_subsets = []
    for i in range(1, len(parts)):
        following_subsets.append(parts[:-i])
    return following_subsets

有没有更有效的方法来做到这一点,或者更加pythonic的方式?也许以某种方式使用迭代器?

1 个答案:

答案 0 :(得分:4)

>>> l = [1, 2, 3, 4]
>>> [l[:i+1] for i in range(len(l))]
[[1], [1, 2], [1, 2, 3], [1, 2, 3, 4]]