2017-04-21 4 views
0

신참 ... 문장을 받으려고 = "실수를 한 적이없는 사람은 시도하지 않았다"과 :파이썬 목록 이해는 방법에 파이썬

  1. 변환 문장
  2. 사용 지능형리스트를 나열 문자 'A, H 및 M'로 시작하는 단어가 포함 된 새 목록을 만듭니다. 목록의 이해와 도움이 필요 사항 String.split()

    string = "Anyone who has never made a mistake has never tried anything new" 
    string.split() 
    ['Anyone', 'who', 'has', 'never', 'made', 'a', 'mistake', 'has', 'never', 'tried', 'anything', 'new'] 
    

    를 사용하여 나열하는 문장을 변환 할

가능. 아무런 실마리가 없습니다.

+1

:

# string = "Anyone who has never made a mistake has never tried anything new" # string.split() listOfWords = ['Anyone', 'who', 'has', 'never', 'made', 'a', 'mistake', 'has', 'never', 'tried', 'anything', 'new'] listOfChars = ['a', 'h', 'm'] wordsBeginningWithAHM = [word for word in listOfWords if word[0] in listOfChars] print(wordsBeginningWithAHM) 

이 제공 : 주어진 if 조건을 사용하여 목록에서 항목을 필터링하는 방법을 아이디어를 얻을 희망 여기] (http://stackoverflow.com/questions/6475314/python-for-in-loop-preceded-by-a-variable/37869704#37869704) – SuperSaiyan

답변

1

단어 목록이 있으며 'A', 'H'또는 'M'으로 시작하는 단어를 원합니다. 그래서, 지능형리스트에서 해당 조건을 확인하십시오

string = "Anyone who has never made a mistake has never tried anything new" 
words = string.split() 
ahm_words = [w for w in words if w.lower()[0] in 'ahm'] 

귀하의 결과가 ahm_words입니다.

참조 : https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions.

+3

실제로 유효한 문자에 대한 목록이 필요하지 않습니다. 다음과 같이 충분합니다 :'ahm_words = [w의 w 단어의 경우 w.lower() [0]의 'ahm'] ' –

+1

감사합니다 !! 이것은 당신이 어떻게 그것에 대해 갔는지 보는 데 도움이되었습니다. – Ray

1

파이썬 구문은 일반적으로 코드가하는 것을 이해하는 데 도움이됩니다. [내 대답을보고 제발, 당신은 어디서부터 시작을 알고 싶은 경우

['has', 'made', 'a', 'mistake', 'has', 'anything'] 
+0

"누구나"를 포함하면 안됩니까? –

+0

@PaulRooney는 'listOfChars'를'['a ','h ','m ','A ','H ','M ']'까지 확장합니다. 대답의 목적은 목록 이해를위한 출발점을 제공하는 것이므로 결과 목록이 "올바른지"는 중요하지 않습니다. OP가 명단 이해를 이해하면 자신을 올바르게 이해하는 것이 쉬워 질 것입니다. – Claudio

+0

도와 주셔서 감사합니다. – Ray