Можно ли использовать функцию «Счетчик», чтобы видеть вхождения элементов в списке большего списка? - PullRequest
0 голосов
/ 28 апреля 2020

Меня просят составить код, который подсчитывает вхождение каждой гласной в одном введенном слове. Без учета регистра.

Поэтому я хочу подсчитать вхождение различных элементов в список. Они думали об этом, чтобы создать список. vowels=( "a" ,"e" ,"i" ,"o" ,"u" )

Затем я ввожу слово, понижая его, и т. Д. c.

from collections import Counter
x = input()
y = x.lower()
z = list(y)

Затем я хочу использовать счетчик, чтобы он мог сосчитать все гласные одновременно.

C = z.Counter(vowels) 
print(C)

Но когда я запускаю программу, она показывает мне

AttributeError: у объекта 'list' нет атрибута 'Counter'

Так что Я делаю не так? Или вы можете просто не использовать счетчик так же, как вы используете счетчик?

(Я уже решил упражнение с помощью счетчика, но я пытаюсь найти элегантное более краткое решение.)

Это весь код, который я пытаюсь заставить работать:

from collections import Counter
x = input()
y = x.lower()
z = list(y)
vowels=[ "a" ,"e" ,"i" ,"o" ,"u" ]

C = z.Counter(vowels)

print(C)

1 Ответ

0 голосов
/ 29 апреля 2020

Counter не является ни атрибутом, ни методом списка. Попробуйте вместо этого:

vowels = ("a", "e", "i", "o", "u")
x = input("Enter a word:") # input: aeiai
y = x.lower()
vowels_counter = {k: v for k, v in Counter(y).items() if k in vowels}
print(vowels_counter) # output: {'a': 2, 'e': 1, 'i': 2}
...