gpt4 book ai didi

python - 如何在字符串中进行条件字符替换

转载 作者:行者123 更新时间:2023-11-28 19:41:13 28 4
gpt4 key购买 nike

我在 Python 中有一个 unicode 字符串,基本上需要一个字符一个字符地检查,并根据规则列表替换某些字符。一个这样的规则是,如果 an 之后,则 a 更改为 ö。此外,如果一行中有两个元音字符,它们将被替换为一个元音字符和 :。因此,如果我有字符串 "natarook",获取 "nötaro:k" 的最简单和最有效的方法是什么?如果重要,请使用 Python 2.6 和 CherryPy 3.1。

编辑:连续的两个元音确实表示相同的元音(oo、aa、ii)

最佳答案

# -*- coding: utf-8 -*-

def subpairs(s, prefix, suffix):
def sub(i, sentinal=object()):
r = prefix.get(s[i:i+2], sentinal)
if r is not sentinal: return r

r = suffix.get(s[i-1:i+1], sentinal)
if r is not sentinal: return r
return s[i]

s = '\0'+s+'\0'
return ''.join(sub(i) for i in xrange(1,len(s)))

vowels = [(v+v, u':') for v in 'aeiou']

prefix = {}
suffix = {'na':u'ö'}
suffix.update(vowels)
print subpairs('natarook', prefix, suffix)
# prints: nötaro:k

prefix = {'na':u'ö'}
suffix = dict(vowels)
print subpairs('natarook', prefix, suffix)
# prints: öataro:k

关于python - 如何在字符串中进行条件字符替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1849185/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com