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


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.