我有一个字符串: a = '0202201131181'
我想将其中的所有多个出现的数字1替换为一个,但是如果仅找到一个出现的“ 1”,则将其替换为空字符串”。
我的最终目标是获得:
a = '0202201318' 此处,字符“ 8”之后的“ 1”仅出现一次,因此将其替换为空字符串,但将字符“ 3”之前的“ 11”以及字符“ 3”之后的“ 11”替换为“ 1”。
这是我尝试过的if-else代码块,部分正确:
if '11' in a:
a = a.replace("11","1")
else:
a = a.replace("1","")
但是它输出'02022013181',这是不正确的。这个怎么做?
基于正则表达式的解决方案是最好的。 仅出于记录目的,这是不使用正则表达式的另一种逻辑:
a = '110202201111311811'
new_str = []
for i in range(len(a)):
if a[i] == '1':
if (i!= (len(a)-1) and a[i+1] == '1') and (i!=0 and a[i-1] != '1'):
new_str.append(a[i])
else:
new_str.append(a[i])
print ("".join(x for x in new_str))
输出:
02022013181
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。