Kar*_*ari 6 python python-2.7 python-3.x
所以,我有这个清单
l = ['abc', 'retro', '', '', 'images', 'cool', '', 'end']
Run Code Online (Sandbox Code Playgroud)
而且,我想以这样的方式加入他们:
l = ['abc retro', '', '', 'images cool', '', 'end']
Run Code Online (Sandbox Code Playgroud)
我尝试了很多方法,但似乎没有任何工作.有什么建议?
您可以使用itertools.groupby和列表理解.分组为''s和非,''并使用后者加入项目str.join.理解后面的三元运算符使用组密钥来决定如何为每个组执行操作:
from itertools import groupby
l = ['abc','retro','','','images','cool','','end']
r = [j for k, g in groupby(l, lambda x: x=='')
for j in (g if k else (' '.join(g),))]
print(r)
# ['abc retro', '', '', 'images cool', '', 'end']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |