from itertools import groupby
li = ['w1', 'w2', '#', 'w3', '#']
delim = '#'
[list(g) + [delim] for k,g in groupby(li, lambda x: x == delim) if not k]
>> [['w1', 'w2', '#'], ['w3', '#']]
groupby生成一个迭代器,从iterable返回连续的键和组,lambda函数按连续的非定界符检查和组,定界符由列表条件选择中的if not k过滤掉。你知道吗
result = []
sub = []
for item in original_list:
sub.append(item)
if item == "#":
result.append(sub)
sub = []
print(result)
[['w1', 'w2', '#'], ['w3', '#']]
通过一个模块和一种很好的方法,您可以使用
itertools
Python标准模块库中的groupby
。你知道吗groupby
生成一个迭代器,从iterable返回连续的键和组,lambda函数按连续的非定界符检查和组,定界符由列表条件选择中的if not k
过滤掉。你知道吗然后扩展列表以包含输出的分隔符。你知道吗
编辑:我刚刚意识到它只是说没有模块,但是为什么要这样做,特别是如果Python中有很好的库,而且您不必重新发明轮子。哦,好吧。你知道吗
如果没有模块,你可以参考其他答案。你知道吗
遍历列表并创建子列表并附加它们
相关问题 更多 >
编程相关推荐