Добавьте определенное значение в другой список в Python

#python #list

#питон #Список

Вопрос:

Я новичок в программировании и пытался выполнить несколько упражнений.

Прочитав 5 букв, я хотел бы добавить в новый список только одну гласную.

Я изо всех сил пытался сделать это, но не смог. Вот мой — не работающий — скрипт:

 list = []
vowels = []

for i in range(5):
    list.append(str(input('Add a letter: ')))
    for j in list:
      if 'aeiou' in list:
          vowels.append(list[:])
print(vowels)
 

Оказывается, когда я печатаю гласные, я получаю пустой список [].

Не могли бы вы, ребята, сообщить мне, где я совершаю ошибку?

Пожалуйста, потерпите меня, я очень новичок в программировании и все еще узнаю, как это работает.

Большое спасибо!

Комментарии:

1. if any(letter in list for letter in 'aeiou') ?

2. Привет, @Felipe, добро пожаловать в SO, не могли бы вы вкратце объяснить, чего вы хотите достичь?

Ответ №1:

Это может быть решением, но я не смог полностью понять, что вы пытаетесь сделать.

 letter_list = []
vowels = []

for i in range(5):
    letter_list.append(str(input('Add a letter: ')))



for j in letter_list:
    if any([i in j for i in 'aeiou']):
        vowels.append(j)


print(vowels)
 

Или без части pythonic в операторе if.

 letter_list = []
vowels = []

for i in range(5):
    letter_list.append(str(input('Add a letter: ')))


for j in letter_list:
    if 'a' in j or 'e' in j or 'i' in j or 'o' in j or 'u' in j:
        vowels.append(j)


print(vowels)
 

Ответ №2:

Если я правильно понимаю ваш вопрос, то вы ищете следующее:

 found_vowels = []
vowels = ['a','e','i','o','u']

for i in range(5):
    letter = input('Enter a letter: ')
    if letter in vowels:
        found_vowels.append(letter)
print(f"The vowels you entered are {found_vowels}")
 

Ответ №3:

Согласно вашему утверждению, если вам нужно сначала прочитать 5 букв, а затем решить, какие из них являются гласными, тогда у вас может быть 2 отдельных цикла:

 mlist = []
vowels = []

for i in range(5):
    mlist.append(input('Add a letter: '))

# Copying in a second list just the vowels
for j in mlist:
      if j in 'aeiou':
          vowels.append(j)

print(vowels)
 

Если вы хотите разделить гласные и согласные, вы можете решить это следующим образом:

 vowels = []
consonants= []

for i in range(5):
    letter = input('Add a letter: ')
    if letter in 'aeiou':
        vowels.append(letter)
    else:
        consonants.append(letter)
        
print(vowels)
print(consonants)