以 efficient/pythonic 方式从列表中生成以下子集

Generate following subsets from list in efficient/pythonic manner

从列表 [1,2,3,4] 我想得到 [[1],[1,2],[1,2,3],[1,2,3,4]]。我不确定这叫什么(如果有的话),也许类似于 following subsets?

我目前的做法是:

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

是否有更有效的方法或更 pythonic 的方法?也许以某种方式利用迭代器?

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