我有一个创建系数列表的循环:

for i in N:
    p = 0
    for k in range(i+1):
        p += (x**k)/factorial(k)
        c.append(p)

例如,N = [2, 3, 4]将给出列表c:
[1.0, 2.0, 2.5, 1.0, 2.0, 2.5, 2.6666666666666665, 1.0, 2.0, 2.5, 2.6666666666666665, 2.708333333333333]

我想在每个1.0元素之后创建一个单独的列表例如嵌套列表:
[[1.0, 2.0, 2.5], [1.0, 2.0, 2.5, 2.6666666666666665], [1.0, 2.0, 2.5, 2.6666666666666665, 2.708333333333333]]

我在考虑使用if测试,比如
for c_ in c:
    if c_ == 1.0:
        anotherList.append(c_)

不过,这只是附加了1.0,我不知道如何使它在1之后附加所有内容,而不是仅附加1.0。

最佳答案

您可以在列表理解中使用itertools.groupby

>>> [[1.0]+list(g) for k,g in itertools.groupby(l,lambda x:x==1.0) if not k]
[[1.0, 2.0, 2.5], [1.0, 2.0, 2.5, 2.6666666666666665], [1.0, 2.0, 2.5, 2.6666666666666665, 2.708333333333333]]

09-06 12:58