首页 > 解决方案 > 如果这些元素位于两个空格之间,则连接列表的元素

问题描述

我有这样的输入:

['assembly', '', 'py', 'tho', 'n', '', 'ja', 'va', '', 'rub', 'y', '', 'java', 'script', '', 'c++']

我想在两者之间加入元素''以获得这样的输出:

['assembly', 'python', 'java', 'ruby', 'javascript', 'c++']

我尝试join像这样使用和列出切片:

a=['assembly', '', 'py', 'tho', 'n', '', 'ja', 'va', '', 'rub', 'y', '', 'java', 'script', '', 'c++']
a[2:5] = [''.join(a[ 2: 5])]
a=['assembly', '', 'python', '', 'ja', 'va', '', 'rub', 'y', '', 'java', 'script', '', 'c++']

这在某种程度上有效,但我不知道如何为整个列表迭代这条指令。

标签: pythonlistjoinslicewhitespace

解决方案


使用itertools.groupby

from itertools import groupby

l = ['assembly', '', 'py', 'tho', 'n', '', 'ja', 'va', '', 'rub', 'y', '', 'java', 'script', '', 'c++']
new_l = [''.join(g) for k, g in groupby(l, key = bool) if k]

输出:

['assembly', 'python', 'java', 'ruby', 'javascript', 'c++']

推荐阅读