2
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)

私のコードは正しくなく、元のリストのすべての単語が出力されます。

4

6 に答える 6

11
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']
于 2012-10-11T06:33:16.610 に答える
7

優れた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]は、空の単語では機能しないことです(この特定の例では重要ではありませんが、ユーザー入力の解析などの実際のタスクでは重要です)。

于 2012-10-11T06:42:46.833 に答える
7

リスト内包表記を使用したワンライナーの回答を次に示します。

>>> print [w for w in words if w[0] in 'aeiou']
['apple', 'orange', 'otter', 'iguana', 'eagle']
于 2012-10-11T06:36:02.577 に答える
2
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)
于 2012-10-11T06:34:17.243 に答える