【问题标题】:python string: remove all zeros and one value before each zero in a stringpython字符串:删除字符串中每个零之前的所有零和一个值
【发布时间】:2018-10-27 03:36:24
【问题描述】:
我有一个幼稚的 Python 问题;我需要从字符串“s”中删除“0”和它之前的值(任何值):
s = "8 9243 8607 56 586262 4697424 00000 ik 0 C S<->L G 0 G 0 G 0 P A<->A R 0"
并打印以下内容:
8 9243 8607 56 586262 4697424 00000 C S<->L P A<->A
有什么建议吗?
谢谢。
【问题讨论】:
标签:
python
split
naivebayes
【解决方案1】:
这是一个“hacky”解决方案。
请注意,它不会像您的输出那样在“s”中保留空格(如果需要,可能会保留),但结果值是相同的:
# s = ... # your s string
ss = []
split = s.split()
for i, n in enumerate(split):
try:
if split[i+1] == '0':
pass
elif n != '0':
ss.append(n)
except IndexError:
pass
print ' '.join(ss)
打印:
8 9243 8607 56 586262 4697424 00000 C S<->L P A<->A
【解决方案2】:
你可以使用re.sub:
import re
s = "8 9243 8607 56 586262 4697424 00000 ik 0 C S<->L G 0 G 0 G 0 P A<->A R 0"
new_s = re.sub('\s{6,}', ' ', re.sub('[a-zA-Z\d]+\s+0', '', s))
输出:
8 9243 8607 56 586262 0000 C S<->L P A<->A