#python #list #python-2.7
#python #Список #python-2.7
Вопрос:
Если у меня есть следующий список
vowels = ["a","e","i","o","u"]
и другой список
words = ["happiness", "yellow"]
как мне подсчитать количество гласных в каждом слове, т. Е. Счастье = 3, желтый = 2?
Комментарии:
1. Разбейте проблему на более простые … Как вы подсчитываете количество вхождений ОДНОЙ буквы в строке? Как только у вас это получится, вы можете просмотреть список букв и добавить результат этой функции.
2. Этот вопрос, похоже, не по теме, потому что это не служба написания кода, и здесь уже есть десятки вопросов о подсчете гласных с использованием Python.
Ответ №1:
Используя понимание списка:
>>> vowels = ["a","e","i","o","u"]
>>> words = ["happiness", "yellow"]
>>> [sum(c in vowels for c in word) for word in words]
[3, 2]
Если вы хотите сопоставить слова и вхождения, используйте понимание по словарю:
>>> {word: sum(c in vowels for c in word) for word in words}
{'happiness': 3, 'yellow': 2}
Преобразование vowels
в set
сделает его более эффективным.
Ответ №2:
data = [0]*len(words) # Initializing the data list
for index, word in enumerate(words): # Iterating through the list of words
for letter in list(word):
if letter in vowels: #checking if the letter is in vowels
data[index] = data[index] 1
print data
данные теперь содержат количество гласных, соответствующих тому же индексу, что и список слов. Приветствия! 🙂