如果子字符串属于列表,则必须替换子字符串
txt = 'lorem ipsum; lorem ipsum. lorem ipsum: loren lorem'
list_punctuation = [', ',': ','; ']
for punct in list_punctuation:
txt = txt.replace(punct,punct + '<<')
多数民众赞成在典型的方式。我遍历列表的所有元素,并在标点符号之后进行包含符号simbol“ <<”的替换。
问题是是否有更Python化的方法可以做到这一点。我不喜欢这样的循环,而且丑陋的循环可能非常慢。
任何想法?
编辑1
正则表达式有效。但是我仍然认为不使用外部库就存在一个pythonic的内衬(即使re是标准库的一部分)。为什么要引用非正则表达式解决方案?因为该列表将单独构建,并且会随着时间而变化。更改列表比使用正则表达式更容易。我现在不知道列表将满足什么。标点符号列表是一个简短的示例。
EDIT2在答案中建议两个链接。
a)第一个是关于条件替换。这里没有条件,只是列表的元素。在此链接中提供了多线解决方案。我的问题是找到一个班轮。这个问题的目的是找到一个更简洁的解决方案。
b)这个问题是关于替换字符的,没有引用包含替换元素的列表。在b)中,多行编码不是问题,而这正是问题所在。替换字符串中多个字符的最佳方法?
NOR a)或b)是解决方案。但是不要紧,这个问题已经被阻止,坚持在那里有解决方案。
您可以使用re.sub
:
import re
txt = 'lorem ipsum; lorem ipsum. lorem ipsum: loren lorem'
def my_s(g):
return g.group() + '<<'
re.sub(r'[,:;] ', my_s, txt)
# 'lorem ipsum; <<lorem ipsum. lorem ipsum: <<loren lorem'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句