假设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的新手,我会很感激一些提示。完全没有找到直接的答案。
答案 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
。