Eag*_*gle 29 python split python-2.7
我想在只有至少两个或更多空格的地方拆分一个字符串.
例如
str = '10DEUTSCH GGS Neue Heide 25-27 Wahn-Heide -1 -1'
print str.split()
Run Code Online (Sandbox Code Playgroud)
结果:
['10DEUTSCH', 'GGS', 'Neue', 'Heide', '25-27', 'Wahn-Heide', '-1', '-1']
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样:
['10DEUTSCH', 'GGS Neue Heide 25-27', 'Wahn-Heide', '-1', '-1']
Run Code Online (Sandbox Code Playgroud)
unu*_*tbu 48
In [4]: import re
In [5]: text = '10DEUTSCH GGS Neue Heide 25-27 Wahn-Heide -1 -1'
In [7]: re.split(r'\s{2,}', text)
Out[7]: ['10DEUTSCH', 'GGS Neue Heide 25-27', 'Wahn-Heide', '-1', '-1']
Run Code Online (Sandbox Code Playgroud)
正如已经指出的那样,str对于你的字符串来说,这不是一个好名字,所以使用words:
output = [s.strip() for s in words.split(' ') if s]
Run Code Online (Sandbox Code Playgroud)
.split('') - 带有两个空格 - 将为您提供一个包含空字符串的列表,以及包含尾部/前导空格的项目.列表if s推导遍历该列表,保留任何非空白项(),而.strip()负责任何前导/尾随空格.
In [30]: strs='10DEUTSCH GGS Neue Heide 25-27 Wahn-Heide -1 -1'
In [38]: filter(None, strs.split(" "))
Out[38]: ['10DEUTSCH', 'GGS Neue Heide 25-27', ' Wahn-Heide', ' -1', '-1']
In [32]: map(str.strip, filter(None, strs.split(" ")))
Out[32]: ['10DEUTSCH', 'GGS Neue Heide 25-27', 'Wahn-Heide', '-1', '-1']
Run Code Online (Sandbox Code Playgroud)