考虑..
dict = {
'?????':'?????',
'russianA':'englishA'
}
s = '????? russianA'
Run Code Online (Sandbox Code Playgroud)
我想用它们各自的dict值替换所有dict键s.
Max*_*keh 91
使用re:
import re
s = '????? not russianA'
d = {
'?????':'?????',
'russianA':'englishA'
}
pattern = re.compile(r'\b(' + '|'.join(d.keys()) + r')\b')
result = pattern.sub(lambda x: d[x.group()], s)
# Output: '????? not englishA'
Run Code Online (Sandbox Code Playgroud)
这只会匹配整个单词.如果您不需要,请使用以下模式:
pattern = re.compile('|'.join(d.keys()))
Run Code Online (Sandbox Code Playgroud)
请注意,在这种情况下,如果某些字典条目是其他字符串的子字符串,则应按长度对单词进行排序.
cod*_*ape 23
你可以使用reduce函数:
reduce(lambda x, y: x.replace(y, dict[y]), dict, s)
Run Code Online (Sandbox Code Playgroud)
Chr*_*heD 17
解决方案在这里找到(我喜欢它的简单性):
def multipleReplace(text, wordDict):
for key in wordDict:
text = text.replace(key, wordDict[key])
return text
Run Code Online (Sandbox Code Playgroud)
一种方式,没有重新
d = {
'?????':'?????',
'russianA':'englishA'
}
s = '????? russianA'.split()
for n,i in enumerate(s):
if i in d:
s[n]=d[i]
print ' '.join(s)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62563 次 |
| 最近记录: |