只反转字符串中的元音

2024-09-29 19:01:11 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个字符串,我只想反转元音,并保持其余字符串不变。如果输入为fisherman,则输出应为fashermin。我尝试了以下代码:

a=input()
l=[]
for i in a:
    if i in 'aeiou':
        l.append(i)
siz=len(l)-1
for j in range(siz,-1,-1):
    for k in a:
        if k in 'aeiou':
            a.replace(k,'l')
print(a)

为了获得所需的输出,应该对此代码进行哪些更改


Tags: 字符串代码inforinputlenifrange
2条回答

将单词转换为字母列表并返回更容易:

a=input('Enter word: ')
l=[]
for i in a:
    if i in 'aeiou':
        l.append(i)
letters = list(a)
for i in range(len(letters)):
    if letters[i] in 'aeiou':
        letters[i] = l.pop(-1)

print(''.join(letters))

代码中几乎没有逻辑错误

  • 您需要将o/p of.replace函数保存在另一个字符串中 a= a.replace(k,'l')

  • “l”是一个字符串。我确信您要的是列表访问,因此正确的语法是:a= a.replace(k,l[j])

  • 当替换时,如果使用相同的字符串(在本例中为字符串“a”),则会导致所有元音都被相同的元音替换

使用您使用的相同变量名,以下是正确的方法之一:

a=input()
l=""

for i in a:
    if i in 'aeiouAEIOU':
        l+=i
        
new_a = ""
for k in a:
    if k in "aeiouAEIOU":
        new_a += l[-1]
        l = l[:-1]
    else:
        new_a += k
print(a)
print(new_a)

相关问题 更多 >

    热门问题