如何在每个人声后加上“g”+人声?

2024-09-30 20:35:50 发布

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

如何生产

hegellogo wogorldhello 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

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


Tags: oringohello列表forworldif
3条回答

对于每个字符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"])

我觉得你的密码没问题。另一部分缺失,这就是导致意外stdout的原因

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

理解中的if子句正在过滤它。相反,我们需要一个三元组来判断每个字符是否是元音。我们还需要将生成的角色重新连接在一起

phrase = "hello world"
vowels = "aeiou"

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

相关问题 更多 >