如何用“ g” +声音后缀每个声音?

时间:2019-06-20 21:13:02

标签: python

如何生产

hegellogo wogorld来自hello world,具有列表理解能力?

我的尝试未完成如下。

["g"+x for x in "hello world" if (x=="a" or x=="i" or x=="u" or x=="e" or x=="o")]

它产生["ge","go","go"]而不是hegellogo wogorld

注意:我只对列表理解方法感兴趣。

3 个答案:

答案 0 :(得分:3)

理解中的if子句正在对其进行过滤。相反,我们希望了解每个字符是否为元音的三元数。我们还需要将生成的字符重新组合在一起。

phrase = "hello world"
vowels = "aeiou"

''.join(char + "g" + char if char in vowels else char for char in phrase)

答案 1 :(得分:2)

对于每个字符ch,您希望结果包括ch + 'g' + ch(如果ch是元音),否则只需ch。您可以将其表示为

(ch + 'g' + ch) if ch in "aeiou" else ch

所以您需要类似的东西:

''.join([(ch + 'g' + ch) if ch in "aeiou" else ch for ch in "hello world"])

答案 2 :(得分:1)

您的代码对我来说还不错。缺少其他部分,这就是导致意外标准输出的原因。

x = "hello world"
y = "".join(["g"+a if a in ['a','e','i','o','u'] else a for a in x])
y
--> 'hgellgo wgorld'