给定一个列表,例如:
[a, SEP, b, c, SEP, SEP, d]
如何将其拆分为子列表列表:
[[a], [b, c], [], [d]]
实际上我需要相当于str.split()
对于列表。我可以拼凑一些东西,但我似乎无法想出任何简洁和/或Pythonic的东西。
我从迭代器获取输入,因此使用它工作的生成器也是可以接受的。
更多示例:
[a, SEP, SEP, SEP] -> [[a], [], [], []]
[a, b, c] -> [[a, b, c]]
[SEP] -> [[], []]
一个简单的生成器适用于您问题中的所有情况:
def split(sequence, sep):
chunk = []
for val in sequence:
if val == sep:
yield chunk
chunk = []
else:
chunk.append(val)
yield chunk
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)