파이썬에서 두 개의 정렬 된 목록을 어떻게 비교할 수 있습니까?


105

긴 목록이 하나있는 경우 : myList = [0,2,1,0,2,1]두 목록으로 나뉩니다.

a = [0,2,1]
b = [0,2,1]

이 두 목록을 비교하여 두 목록이 모두 같거나 같은지, 같은 순서에 있어야한다는 제약 조건이 있는지 어떻게 확인할 수 있습니까?

두 목록을 정렬하여 비교하라는 질문을 보았지만 특정 경우에는 정렬 된 비교가 아니라 동일한 목록 비교를 확인하고 있습니다.

답변:


175

클래식 ==연산자를 사용하십시오 .

>>> [0,1,2] == [0,1,2]
True
>>> [0,1,2] == [0,2,1]
False
>>> [0,1] == [0,1,2]
False

동일한 색인의 요소가 같으면 목록이 동일합니다. 그러면 주문이 고려됩니다.


3
이것은 numpy 목록과 함께 다음 오류를 반환 할 수 있습니다.ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Alex Reynolds

@AlexReynolds가 말한 것. all(arr1 == arr2)또는 로 테스트해야합니다 (arr1 == arr2).all().
Julio

10

동일한 지 아닌지 확인하고 싶다면 a == b순서를 고려하여 참 / ​​거짓을 제공해야합니다.

요소를 비교하고 싶다면 비교를 위해 numpy를 사용할 수 있습니다.

c = (numpy.array(a) == numpy.array(b))

여기에서 c에는 모두 참인 3 개의 요소가있는 배열이 포함됩니다 (예 :). a와 b의 요소가 일치하지 않는 경우 c의 해당 요소는 false가됩니다.


그리고 c.all ()이 True인지 확인합니다
Pulkit Bansal

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.