使用字典理解在字符串中查找元音?

时间:2015-09-15 02:38:02

标签: python dictionary-comprehension

假设S = "Tea Lemon CoffEE cAke".lower()

    { x:y.count('aeoiu') for x in S.split() for y in 'aeoiu' if y in 'aeoiu' }

输出是:

    {'cake': 0, 'tea': 0, 'lemon': 0, 'coffee': 0}

为什么它给我0而不是每个单词中的元音数量? 我是python的新手,我会很感激一些提示。完全没有找到直接的答案。

1 个答案:

答案 0 :(得分:5)

我想你想这样做:

{ x: sum(x.count(y) for y in 'aeoiu') for x in S.split() }

哪个输出:

{'coffee': 3, 'cake': 2, 'lemon': 2, 'tea': 2}

您的代码计算了y中字符串'aeoiu'出现的次数,该值始终为零。另请注意,for y in 'aeoiu' if y in 'aeoiu'是多余的,您不需要if