2014-11-06 2 views
-2

사용자의 입력을 스캔하는 코드의 일부를 작성해야합니다. 입력의 각 그룹을 먼저 스캔 한 다음 그룹이 목록 중 하나에 있으면 특정 문자열이 할 수있는 더 좋은 방법이 그이 방법보다 더 : 들어입력을 목록에 연결하는 가장 좋은 방법

자체에 inputt.split() : 자체 만약 목록 : 인쇄 (특정 단어)

이 목록의 많은있다 확인하려면 각각의 if 문을 반복하는 것보다 다른 방법이 있습니까 ??

+1

샘플 입력과 샘플 출력을 제공해야합니다. – merlin2011

+0

inputt = raw_input (""), 코드는 작동하지만 20 개 목록을 확인해야한다면 if 문을 20x로 작성해야합니다. 각 목록마다 다른 문자열을 인쇄한다면? –

+0

목록의 이름을 출력 할 문자열에 매핑하십시오. 목록을 반복하고 목록에있는 경우지도에서 인쇄 할 문자열을 당깁니다. – merlin2011

답변

1

사용 사전 : 당신은 당신의 목록을 반복 할 필요가 같은

lists = {string1:[list1], string2:[list2], ...} 

for item in lists: 
    if input in lists[item]: 
     print(item) 
0

는 소리. 리스트 당 하나의 스트링이 있다면,리스트에 대한 스트링 사전은 어떨까요?

string1 = 'a certain string' 
list1 = ['a', 'b', 'c'] 

string2 = 'b certain string' 
list2 = ['d', 'e', 'f'] 

string_list_map = {string1: list1, string2: list2} 

for se in inputt.split(): 
    for the_string, the_list in string_list_map.items(): 
    if se in the_list: 
     print the_string 
+0

그게 전부 였지만 목록이 많아서 각 목록에는 세 개의 문자열이 있습니다. 정말 긴 루프로 끝납니다. –

관련 문제