【发布时间】:2020-02-24 12:46:33
【问题描述】:
我有一个值列表,7,7,7,7,7,7,7,7,6,6,6,6,6,6,7,7,7,7,7,8, 8,8,8,8,8,8,8,5,5,5,5,5,5,6,6,6,6,6 等,我需要将列表拆分为列表格式列表时间值发生变化,使其变为 [[7,7,7,7,7,7,7,7],[6,6,6,6,6,6],[7,7, 7,7,7],[8,8,8,8,8,8,8,8],[5,5,5,5,5,5],[6,6,6,6,6] ].
我尝试了如下代码,但是它告诉我有一个意外的令牌“for”。还有其他更清洁的方法(一个衬垫)吗?
for i, n in enumerate(x):
inds = []
if x[i] != x[i-1]:
inds.append(i)
list(split_after(x, lambda i: i for i in inds))
编辑:我不能使用 groupby,因为它需要我对列表进行排序,并且我同时使用此列表对另一个行列表进行排序,并且由于它的排序方式,我无法重新排序另一个列表是围绕我的整个表面排列的线条。
【问题讨论】:
-
i for i in只会为您提供与inds相同的可迭代对象 -
具体看这里的第一个例子:stackoverflow.com/a/45873519/476
-
@deceze groupby 要求我对列表进行排序,但我不能这样做,因为我需要它完全按照它呈现的顺序,而不是按排序列表。这是因为我正在针对另一组数据同时运行它,使用它来拆分另一组数据。
-
groupby将按照列表的顺序处理列表;对于您的用例it'll work exactly as you want it to work,您没有有对其进行排序。 -
@AltheaC groupby not 需要对列表进行排序。事实上,如果您提供的示例是准确的,那么排序会给您一个不正确的输出。
标签: python rhino grasshopper