Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 두 목록을 비교하는 방법은 무엇입니까?

<시간/>

파이썬의 목록은 유사한 항목의 모음입니다. 때때로 특정 작업을 수행하기 위해 두 목록의 데이터 항목을 비교해야 할 수도 있습니다. 파이썬에서 두 목록을 비교하는 특정 방법에 대해 논의할 것입니다.

list.sort() 및 ==연산자 사용

list.sort() 메서드는 두 목록을 정렬하고 ==연산자는 두 목록 항목을 항목별로 비교합니다. 이는 동일한 위치에 동일한 데이터 항목이 있음을 의미합니다. 이것은 목록에 동일한 데이터 항목 값이 포함되어 있는지 확인하지만 목록의 요소 순서는 고려하지 않습니다. 이것은 이 비교 방법에 따라 목록 [1,2,3]이 목록 [2,1,3]과 동일하다는 것을 의미합니다.

예시

def compareList(l1,l2):
   l1.sort()
   l2.sort()
   if(l1==l2):
      return "Equal"
   else:
      return "Non equal"
l1=[1,2,3]
l2=[2,1,3]
print("First comparison",compareList(l1,l2))
l3=[1,2,3]
l4=[1,2,4]
print("Second comparison",compareList(l3,l4))

출력

First comparison Equal
Second comparison Non equal

collection.Counter() 사용

이 방법은 첫 번째 목록에 있는 각 요소의 빈도를 두 번째 목록과 비교하여 목록의 동등성을 테스트합니다. 이 방법은 또한 목록 요소의 순서를 고려하지 않습니다.

예시

import collections
def compareList(l1,l2):
   if(collections.Counter(l1)==collections.Counter(l2)):
      return "Equal"
   else:
      return "Non equal"
l1=[1,2,3]
l2=[2,1,3]
print("First comparison",compareList(l1,l2))
l3=[1,2,3]
l4=[1,2,4]
print("Second comparison",compareList(l3,l4))

출력

First comparison Non equal
Second comparison Equal

sum(), zip() 및 len() 사용

이 방법은 먼저 두 목록의 각 요소를 비교하고 1의 합으로 저장한 다음 다른 목록의 길이와 비교합니다. 이 방법의 경우 이 계산을 수행하기 전에 먼저 두 목록의 길이가 동일한지 확인해야 합니다.

이 메서드는 요소의 순서도 확인합니다. 이것은 목록 [1,2,3]이 목록 [2,1,3]과 같지 않다는 것을 의미합니다.

예시

def compareList(l1,l2):
   if(len(l1)==len(l2) and len(l1)==sum([1 for i,j in zip(l1,l2) if i==j])):
      return "Equal"
   else:
      return "Non equal"
l1=[1,2,3]
l2=[2,1,3]
print("First comparison",compareList(l1,l2))
l3=[1,2,3]
l4=[1,2,3]
print("Second comparison",compareList(l3,l4))

출력

First comparison Non equal
Second comparison Equal

위의 예에서와 같이 첫 번째 비교의 경우 두 목록의 데이터 항목은 동일하지만 요소의 순서가 다릅니다. 따라서 첫 번째 비교는 같지 않은 결과를 반환합니다.

==연산자 사용

이것은 첫 번째 방법의 수정입니다. 이 방법은 목록을 정렬하지 않고 비교하므로 이 방법은 목록에 있는 데이터 항목의 순서를 고려합니다.

예시

def compareList(l1,l2):
   if(l1==l2):
      return "Equal"
   else:
      return "Non equal"
l1=[1,2,3]
l2=[2,1,3]
print("First comparison",compareList(l1,l2))
l3=[1,2,3]
l4=[1,2,3]
print("Second comparison",compareList(l3,l4))

출력

First comparison Non equal
Second comparison Equal

이것들은 파이썬에서 목록을 비교하는 몇 가지 방법입니다. 둘 다 데이터 항목의 순서를 고려하고 데이터 항목의 순서를 고려하지 않습니다.