#python #python-3.x
Вопрос:
Поэтому я определил функцию, которая проверяет наличие гласных на входе и печатает их в списке, она работает, но печатает несколько списков, когда я хочу, чтобы она печатала только один, например ([‘i’, ‘e’, ‘e’, ‘a’, ‘e’])
Вот мой код
vowels = 'aeiou'
sentence = input()
def VowelChecker(sentece):
for letter in sentence:
if letter in vowels:
print([letter])
Есть какие-нибудь идеи?
Ответ №1:
Вам нужно создать список, а затем добавить к нему, в конечном итоге распечатав его один раз после цикла:
def print_vowels(sentence):
vowels = 'aeiou'
vowels_in_sentence = []
for letter in sentence:
if letter in vowels:
vowels_in_sentence.append(letter)
print(vowels_in_sentence)
Другим способом достижения этой цели было бы использование filter
встроенного:
def print_vowels(sentence):
vowels = 'aeuio'
vowels_in_sentence = filter(lambda letter: letter in vowels, sentence)
print(vowels_in_sentence)
Ответ №2:
Вы также можете использовать понимание списка:
vowels = 'aeiou'
sentence = "icebreaker"
def VowelChecker(sentece):
print([c for c in sentence if c in vowels])
VowelChecker(sentence)
# ['i', 'e', 'e', 'a', 'e']
Ответ №3:
Может быть, вы можете создать новый список и каждый раз, когда вы находите письмо, добавлять его в этот список. В конце верните этот список, чтобы вы могли его распечатать.
vowels = 'aeiou'
sentence = input()
def VowelChecker(sentece):
res = []
for letter in sentence:
if letter in vowels:
res.append(letter)
return res
print(VowelChecker(sentence))
Комментарии:
1. нет необходимости использовать две
for
петли. Что делает этот код, он повторяет каждую букву, а затем пытается повторить каждую букву (переменную, которую вы вызываетеword
), которая являетсяchar
и не может быть повторена