我传递的函数是一个填充了字符串的列表。我希望这个函数能够获取每个字符串并遍历它们,根据每个字符串中的字母执行两个不同的操作,然后将它们显示为新列表中的单独和现在更改的字符串。
具体来说,当程序遍历每个字符串并找到一个辅音时,它应该按照找到它的顺序将辅音写入新列表。如果程序在当前字符串中找到元音,它应该在元音之前附加'xy',然后是元音本身。
举个例子:
如果用户输入:“现在怎么样的棕牛”,该函数的输出应为:“hxyow nxyow brxyown cxyow”。我试过嵌套for循环,嵌套while循环和之间的变化。实现这一目标的最佳方法是什么?干杯!
答案 0 :(得分:1)
对于旧字符串中的每个字符,检查它是元音还是辅音,并相应地创建新字符串。
old = "how now brown cow"
new = ""
for character in old:
if character in ('a', 'e', 'i', 'o', 'u'):
new = new + "xy" + character
else:
new = new + character
print(new)
我给了你这个想法,现在我把它作为练习,让它适用于字符串列表。如果您使用python2
,还要进行适当的更改。
答案 1 :(得分:0)
>>> def xy(st):
... my_list,st1 =[],''
... for x in st:
... if x in 'aeiou':
... st1 += 'xy'+x
... elif x in 'cbdgfhkjmlnqpsrtwvyxz':
... my_list.append(x)
... st1 += x
... return my_list,st1
...
>>> my_string="how now brown cow"
>>> xy(my_string)
(['h', 'w', 'n', 'w', 'b', 'r', 'w', 'n', 'c', 'w'], 'hxyow nxyow brxyown cxyow')
在上面的函数中,当它找到元音连接xy + vowel时迭代通过字符串,它将辅音添加到列表中,最后返回列表和字符串
答案 2 :(得分:0)
使用列表解析执行此操作的简单方法:
old_str = "how now brown cow"
new_str = ''.join(["xy" + c if c in "aeiou" else c for c in old_str])
print new_str
但是,如果你要处理大量数据,那么使用一组元音会更有效率,例如
vowels = set("aeiou")
old_str = "how now brown cow"
new_str = ''.join(["xy" + c if c in vowels else c for c in old_str])
print new_str
请注意,这些节目只是复制所有不是元音的字符,即空格,数字和标点符号被视为辅音。