words = ['apple', 'orange', 'pear', 'milk', 'otter', 'snake', 'iguana',
'tiger', 'eagle']
vowel=[]
for vowel in words:
if vowel [0]=='a,e':
words.append(vowel)
print (words)
私のコードは正しくなく、元のリストのすべての単語が出力されます。
words = ['apple', 'orange', 'pear', 'milk', 'otter', 'snake','iguana','tiger','eagle']
for word in words:
if word[0] in 'aeiou':
print(word)
このようなリスト内包表記を使用することもできます
words_starting_with_vowel = [word for word in words if word[0] in 'aeiou']
優れたPythonは、ほとんど自然言語のように読みます。
vowel = 'a', 'e', 'i', 'o', 'u'
words = 'apple', 'orange', 'pear', 'milk', 'otter', 'snake', 'iguana', 'tiger', 'eagle'
print [w for w in words if w.startswith(vowel)]
ソリューションの問題w[0]
は、空の単語では機能しないことです(この特定の例では重要ではありませんが、ユーザー入力の解析などの実際のタスクでは重要です)。
リスト内包表記を使用したワンライナーの回答を次に示します。
>>> print [w for w in words if w[0] in 'aeiou']
['apple', 'orange', 'otter', 'iguana', 'eagle']
if vowel [0]=='a,e':
words.append(vowel)
ここで元のリストに追加しています。vowel
それはあなたのリストになるはずです。
words = ['apple', 'orange', 'pear', 'milk', 'otter', 'snake','iguana','tiger','eagle']
vowel=[]
for word in words:
if word[0] in "aeiou":
vowel.append(word)
print (vowel)
リスト内包表記の使用
vowel = [word for word in words if word[0] in "aeiou"]
使用するfilter
vowel = filter(lambda x : x[0] in "aeiou",words)