2012-10-11 3 views
1
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) 

내 코드가 올바르지 않으며 원본 목록의 모든 단어가 인쇄됩니다.파이썬을 사용하여 목록에서 모음으로 시작하는 단어를 찾는 방법은 무엇입니까?

+0

모음은 "aeiou"이어야합니다. – user1718826

+0

문제점 : 1.'vowel'을 루프 변수로 대체합니다. 2. 반복 할 목록에'모음 '을 추가합니다. –

+2

'모음 [0] == 'a, e''는 절대로 참이되지 않습니다. 하나의. 자열과 3 개의. 자열을 비교 중입니다. 'ae'에 '모음'[0]과 같은 것을 원합니다. – asmeurer

답변

7
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'] 
1
if vowel [0]=='a,e': 
     words.append(vowel) 

당신은 여기에 원래 목록에 추가되어이 같은 지능형리스트를 사용할 수 있습니다. vowel 목록이어야합니다.

>>> print [w for w in words if w[0] in 'aeiou'] 
['apple', 'orange', 'otter', 'iguana', 'eagle'] 
+0

죄송합니다. 우연히 투표했습니다. 당신은 많은 도움이되었습니다. 고맙습니다. – user1718826

7

를 사용하여 목록 이해

vowel = [word for word in words if word[0] in "aeiou"] 

를 사용

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) 

는 지능형리스트와 1 라이너 답변입니다 RAL 언어 :

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] 솔루션의 문제가 비어 단어 작동하지 않는다는 것입니다 (이 특정 예에 문제가되지 않지만, 사용자의 입력을 구문 분석과 같은 실제 작업에 중요).

+0

+1은'.startswith'에 대해리스트 이해어 – ahans

4

좋은 파이썬은 거의 천연 화처럼 읽 여기 filter

vowel = filter(lambda x : x[0] in "aeiou",words) 
+0

+1을 사용합니다.하지만 첫 번째 행은 튜플을 작성하는 게으른 방법이고'.startswith'는 튜플 만 허용한다는 초보자 용 설명을 추가해야합니다 파이썬 2.5에서. (나는 2.5가 중세라고 알고 있지만 어떤 사람들은 여전히 ​​더 오래된 것을 사용한다.) – pepr

+1

+1은 .startswith가 튜플을 받아 들일 수 있다는 것을 알지 못했다. – wim

관련 문제