在python 3中更改更多字符

时间:2019-03-18 08:29:24

标签: python python-3.x replace

我的问题如下:

我问某人的一个字符串(例如:这是文本):

a = input("Enter a text: "))

我想要这样的每个元音更改:e-> eve,a-> ava,i-> ivi,u-> uvu,o-> ovo with for cycle 最后,我将打印新文本

我的解决方法是:

b = a.replace('o', 'ovo').replace('u', 'uvu')
print(b)

但这不使用for循环

可以帮我吗?谢谢!

4 个答案:

答案 0 :(得分:1)

您可以使用for c in "string":

在Python中遍历字符串

使用此方法,您可以通过以下方式解决您的问题

newString=""
for c in a:
    if c in ["a", "e", "i", "o" "u", "y"]:
        newString+=c+"v"+c
    else:
        newString+=c

答案 1 :(得分:0)

我认为for循环是指for循环?

对于此转换,您可以将查找字典与for循环结合使用。两个玩具示例:

transforms = {'a':'ava',
              'e':'eve',
              'i':'ivi',
              'u':'uvu',
              'o':'ovo'}

test_string = 'This is some text'

首先,您可以使用替换的单词创建一个新字符串:

new_string = ''

for char in test_string:
    if char in transforms:
        new_string += transforms[char]
    else:
        new_string += char

哪个会产生“ Thivis ivis sovomeve tevext”。

或者您可以将原始文档转换为列表,并使用字典替换元素(并最终加入列表):

test_string = list(test_string)

for i, ch in enumerate(test_string):
    if ch in transforms:
        test_string[i] = transforms[ch]

test_string = ''.join(test_string)

还会产生“ Thivis ivis sovomeve tevext”

答案 2 :(得分:0)

for c in ('a','e','i','o','u'):
     a = a.replace(c, c+'v'+c)
print(a)

如果需要原始字符串,可以创建a的先前副本。

答案 3 :(得分:0)

谢谢大家!整个解决方案是:

transforms = {'a':'ava',
              'e':'eve',
              'i':'ivi',
              'u':'uvu',
              'o':'ovo',
              'ö':'övö',
              'ü':'üvü',
              'ó':'óvó',
              'ő':'ővő',
              'ú':'úvú',
              'é':'évé',
              'á':'ává',
              'ű':'űvű',
              'í':'ívi'}

test_string = input('Írj be egy tetszőleges szöveget, amit ivigyelek: ')

new_string = ''

for char in test_string:
    if char in transforms:
        new_string += transforms[char]
    else:
        new_string += char

print(new_string)