gpt4 book ai didi

python - 高效查找并替换模式 'n' +(辅音)

转载 作者:太空宇宙 更新时间:2023-11-03 15:23:25 25 4
gpt4 key购买 nike

我确信这很简单,但我是一个完全的初学者。我正在尝试制作一个工具,其中有一个字符串并搜索 'n' + [任何辅音] 并将其替换为该辅音的两倍 - 例如

aaanq -> aaaqq。

我唯一能想到的是,如下所示,每个可能的 nC 组合都有一个单独的案例。有一个更好的方法吗?

nC_test = input('Enter word: ')

if 'nq' in nC_test:
print('nC pattern found ')
nC_test = nC_test.replace('nq', 'qq')
print(nC_test)

最佳答案

Python 中的字符串是不可变的,因此如果你想修改它们,只需将它们转换为列表即可:

my_list = list(my_string)

然后创建一个辅助函数来检查一个字符是否是辅音。

这可以通过多种方式完成,您可能还想检查大写字符、特殊辅音(西类牙语 ñ),因此请随意实现此功能,使其满足您的需求:

def is_consonant(character):
consonants = ['b','c',...,'z'] # complete the list yourself
if character in consonants:
return True
else:
return False

然后迭代字符串并检查 string[i] 为“n”且 string[i+1] 为辅音的位置。

for i in range(len(my_list)-1): 
if my_list[i] == 'n' and is_consonant(my_list[i+1]):
print('nC pattern found ')
my_list[i] = my_list[i+1]

请注意,我们不会迭代直到最后一个元素,而是直到倒数第二个元素,因此我们可以安全地执行 my_list[i+1]。

如果在 ens 处您需要一个字符串,只需将列表转换回字符串即可:

my_string = ''.join(my_list)

注意:请考虑到,如果您有两个连续的 n 后跟辅音,则重叠的大小写可能会产生不良结果:

annq --> annq --> anqq

这里第一个 n 后面跟着一个辅音 (n),然后第一个 n 被第二个替换(没有有效的改变)。然后下一个循环看到“nq”并将其更改为“qq”,但结果字符串包含“nq”作为结果。

不知道你有没有考虑过这个问题,你考虑一下吧。因此,如果您的结果不包含任何 n 后跟辅音,您将必须考虑这种情况。

关于python - 高效查找并替换模式 'n' +(辅音),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43326449/

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