This question already has answers here:
split list of tuples in lists of list of tuples
(5 个回答)
7年前关闭。
假设你有一个任意元素的列表,比如
应该在给定谓词的每个元素之后拆分为子列表,例如
返回
有没有一种pythonic的方式来做到这一点?
请注意,这将在
(5 个回答)
7年前关闭。
假设你有一个任意元素的列表,比如
['monkey', 'deer', 'lion', 'giraffe', 'lion', 'eagle', 'lion', 'fish']
应该在给定谓词的每个元素之后拆分为子列表,例如
is_lion(element)
返回
True
。上面的例子应该变成[['monkey', 'deer', 'lion'], ['giraffe', 'lion'], ['eagle', 'lion'], ['fish']]
有没有一种pythonic的方式来做到这一点?
最佳答案
最简单的方法大概是:
out = [[]]
for element in lst:
out[-1].append(element)
if predicate(element):
out.append([])
请注意,这将在
out
的末尾留下一个空列表,最后一个 if predicate(element):
的 element
。您可以通过添加以下内容来删除它:out = [l for l in out if l]
关于在给定谓词为真的元素之后拆分列表的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22629252/
10-12 19:34