我有这个循环来创建一个系数列表:
for i in N:
p = 0
for k in range(i+1):
p += (x**k)/factorial(k)
c.append(p)
Run Code Online (Sandbox Code Playgroud)
例如,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]
Run Code Online (Sandbox Code Playgroud)
我想要一种在每个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]]
Run Code Online (Sandbox Code Playgroud)
我正在考虑使用if测试,比如
for c_ in c:
if c_ == 1.0:
anotherList.append(c_)
Run Code Online (Sandbox Code Playgroud)
这只会附加1.0,但我不知道如何让它在一个而不是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]]
Run Code Online (Sandbox Code Playgroud)