2014-09-29 4 views
1

두 목록이 있습니다. 한 목록이 다른 목록의 하위 집합인지 확인하고 싶습니다.두 목록을 비교하는 동안 ' n'을 무시하는 방법

list1 = ['12345678\n', '87654321'] 
list2 = ['','12345678', '87654321', '23456789'] 

문제는 내가 별도의 lines.But에서 항목 (들)이있는 파일을 읽고 있어요 이후 즉 목록 1 항상 내가이 을 무시하려는 \ n 포함됩니다 처음 목록입니다 \ n 그리고 비교를 계속하십시오. 내 코드는 항상 , 그 외 부분은입니다. 사실 시나리오를 모두 수정할 수있는 방법이 있습니까? 아래 내 코드 :

flag = True     # Initialized value of flag to default 'True' at beginning 

for val in list1: 
    if val not in list2: 
    flag = False 

if flag == True 
    ....       # Do some operation if flag is 'True' 
    .... 
else 
    print 'list1 is not a subset of list2'  

답변

2

당신은 모든 공백 문자를 벗겨하는 strip을 사용하고 두 번째 목록의 항목에 해당 비교할 수 있습니다. 또한, all와 루프 당신을 대체 할 수

>>> all(e.strip() in list2 for e in list1) 
True 

또한, 당신은 당신이 list1을 만들 때 개행 문자를 제거에 대해 생각하고, 검색 속도를 set 대신 list을 사용합니다.

>>> set(map(str.strip, list1)).issubset(list2) 
True 
관련 문제