【发布时间】:2014-04-01 20:29:45
【问题描述】:
我正在尝试根据值拆分列表并将其拆分的值保留在创建的子列表中。我找到了this solution 并试图对其进行更改,但我做不到。
import itertools
def isplit(iterable,splitters):
return [list(g) for k,g in itertools.groupby(iterable,lambda x:x in splitters) if not k]
foo = [(0, 1), (1, 2), (2, 3), (0, 1),
(2, 3), (1, 2), (1, 2), (0, 1), (2, 3),
(1, 2), (2, 3), (0, 1), (2, 3), (0, 1),
(1, 2), (2, 3), (1, 2), (0, 1)]
for k,g in itertools.groupby(foo,lambda x:x[0] in (0,)):
if not k:
print k,list(g)
以上代码返回
[(1, 2), (2, 3)]
[(2, 3), (1, 2), (1, 2)]
[(2, 3), (1, 2), (2, 3)]
[(2, 3)]
[(1, 2), (2, 3), (1, 2)]
我希望它返回:
[(0,1),(1, 2), (2, 3)]
[(0,1),(2, 3), (1, 2), (1, 2)]
[(0,1),(2, 3), (1, 2), (2, 3)]
[(0,1),(2, 3)]
[(0,1),(1, 2), (2, 3), (1, 2)]
我该怎么做?
【问题讨论】:
-
你在哪里使用你的
isplit函数?另外,请换行,这样您就不必向右滚动。 -
其实我没有。那是我在其他地方找到的解决方案,底部的循环是我重写该解决方案。
标签: python list split list-comprehension