Используя словарное понимание, чтобы найти гласные в строке?
Если предположить, 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 ответ
Решение
Я думаю, что вы хотите сделать это:
{ x: sum(x.count(y) for y in 'aeoiu') for x in S.split() }
Какие выводы:
{'coffee': 3, 'cake': 2, 'lemon': 2, 'tea': 2}
Ваш код считал, сколько раз встречается строка 'aeoiu' y
, который всегда равен нулю. Также обратите внимание, что for y in 'aeoiu' if y in 'aeoiu'
избыточно, вам не нужно if
,