을 감안할 때 두 목록 :파이썬에서 2D 목록을 비교하여 동등성을 비교하려면 어떻게해야합니까?
a = [[1,2],[3,4]]
b = [[1,2],[3,4]]
내가 compare
이되도록 작성합니다 방법 :
compare(a,b) => true
을 감안할 때 두 목록 :파이썬에서 2D 목록을 비교하여 동등성을 비교하려면 어떻게해야합니까?
a = [[1,2],[3,4]]
b = [[1,2],[3,4]]
내가 compare
이되도록 작성합니다 방법 :
compare(a,b) => true
은 당신이 원하는 수행
>>> a = [[1,2],[3,4]]
>>> b = [[1,2],[3,4]]
>>> a == b
True
참고 : ==
목록이 정렬되지 않은 예입니다 (a
에서 통지 순서 및 b
에)
>>> a = [[3,4],[1,2]]
>>> b = [[1,2],[3,4]]
>>> a == b
False
추가 참조를 위해이 질문을 참조하지 않을 때 유용 : How to compare a list of lists/sets in python?
: 감사합니다. ~ @ dr jimbob
정렬 후에 비교하려는 경우 sorted(a)==sorted(b)
을 사용할 수 있습니다.
그러나 다시 한 점, c = [[4,3], [2,1]]
경우 sorted(c) == sorted(a) == False
때문에 sorted(c)
되는 다른 [[2,1],[4,3]]
(하지 심도있는 일종의)이 연결 대답에서 기술을 사용할 필요가 이것에 대한
. 이후 나는 또한 파이썬을 배우고 있기 때문에 :)
마지막 부분이 올바르지 않습니다. 'a.sort()'는'a'를 정하고'None'을 반환합니다. 그러므로'a.sort() == None'은'True'이고,'a.sort() == b.sort()'는'None == None'으로 평가됩니다. 'False'를 시도하십시오; 예를 들어'b = []'라고하자. (None을 체크 할 때'is' 비교를 사용하는 더 좋은 스타일에주의하십시오.) 이제,'sorted (a) == sorted (b)'가 작동합니다. 'a = [[1,2], [3,4]]','b = [[3,4], [1,2]]'와'c = [[4,3] ([1,2],'[2,1]]'이면''(a)''와''sorted (b)'만 같을 것입니다. 둘 다 [[1,2], [3,4] ([[2,1], [4,3]]). –
@drjimbob 감사합니다. 너의 요점이있어. 감사. –
간단한 :
또 다른 방법은 익명 함수 만들lambda
을 사용
def compare(a, b): return a == b
:
를compare = lambda a, b: a == b
..'a == b'는 당신의 목적에 봉사하지 않을 것입니까? – DSM
반드시 그렇지는 않습니다. 예를 들어 목록의 요소가 문자열이고 대소 문자를 구분하지 않으려는 경우 또는 실수로 수치 오류에 대한 허용 오차를 원할 경우 '=='가 작동하지 않습니다. 예상 유형에 따라 다릅니다. – DSM
@sdasdadas 질문하기 전에 몇 가지 방법을 시도해보십시오 :) 목록은 파이썬 객체입니다. '=='는 파이썬 객체의 평등을 테스트합니다. 두 개의 일반 목록이 같은지 테스트하는 경우에도 마찬가지입니다. –