Appia의 IT세상

파이썬[Python] 020 두개의 리스트(List) 비교 방법 본문

Python/Python 응용

파이썬[Python] 020 두개의 리스트(List) 비교 방법

Appia 2019. 12. 30. 19:07
반응형

오늘은 파이썬에서 가장 많이 사용하는 리스트를 비교하는 방법에 대해서 살펴보고자 합니다. 다양한 방법중에 가장 접근하기 좋은 3가지 방법들로 관련해서 설명하고자 합니다. 리스트에서는 내용물 뿌만 아니라 인데스 번호까지 검토하기 떄문에 이부분이 매우 중요한 부분이 됩니다. 

각 2개의 리스트를 각각 반복하여 서로의 동일 객체 유무 확인 
가장 원시적인 방법으로 2개의 리스트 맴버들을 서로 반복하여 다른 리스트에 맴버들이 존재하는지 확인하는 방식입니다. 

맴버 갯수에 따라 다르지만, 가장 쉽게 접근할 수 있습니다.  예전에 창피하지만, 이렇게 코딩을 해서 차이점을 발견했었던 적이 있습니다. 물론 지금은 다른 방안들을 쓰고 있지만요...

List1 = [1,2,3,4,5]
List2 = [1,3,2,4]

for i in List1 :
    if i not in List2 :
        print("List 2 not containing :")
        print(i)

for i in List2 :
    if i not in List1  :
        print("List 1 not containing :")
        print(i)

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다. 

List 2 not containing :
5


set타입으로 변경하여 비교 

제가 가장 많이 사용하는 방법으로 list를 set맴버로 변경하여 비교하는 방식입니다. 제가 가장 많이 사용하는 방법입니다. 각각의 리스트를 set형식으로 변경하여 difference명령어 또는 -(뺄기)연산자로 비교하는 방법입니다. 

 

List1 = [1,2,3,4,5]
List2 = [1,3,2,4]
SetList1 = set(List1)
SetList2 = set(List2)
print(SetList2 - SetList1)
print(SetList1 - SetList2)

print(SetList2.difference(SetList1))
print(SetList1.difference(SetList2))

<result>
set()
{5}
set()
{5}


sort()와 ==연산자 이용
sort()함수를 이용하여 각 수들을 정렬하고나서, 동일 여부를 확인하는 것입니다. 

List1 = [1,2,3,4,5] 
List2 = [1,3,2,4,5] 

List1.sort() 
List2.sort() 

If List1 == List2 : 
	Print (“OK”) 
Else :  
	Print(“Not Ok) 
    

 


오늘은 3가지 방법으로 List의 차이점을 비교하는 방법에 대해서 살펴보았습니다. 혹 궁금하시거나 문의 사항 있으시면 언제든지 댓글 및 방명록에 글 부탁드립니다.

반응형
Comments