복붙노트

[PYTHON] 보다 큼 연산자 또는보다 작은 연산자를 사용하여 두 목록 비교

PYTHON

보다 큼 연산자 또는보다 작은 연산자를 사용하여 두 목록 비교

나는 정수의 두리스트를 최근에 직접 비교하는 코드 조각을 보았다.

a = [10,3,5, ...]
b = [5,4,3, ...,]
if a > b:
     ...

조금 특이한 것 같았지만 모든 list_a의 요소가 더 큰 경우 list_b의 요소가 더 크고 True이면 각 요소가 같거나 list_b의 요소가 list_a보다 큰 경우 False를 반환한다고 상상했습니다. 그래서 그것을 테스트 :

>>> a=[3,3,3,3]
>>> b=[4,4,4,4]
>>> a>b
False
>>> b>a
True

좋습니다. 그대로 :

>>> b = [1,1,1,1]
>>> a = [1,1,1,1]
>>> a>b
False
>>> b>a
False

그러나 그것이 더 퍼지게되면 :

>>> a=[1,1,3,1]
>>> b=[1,3,1,1]
>>> a>b
False
>>> b>a
True

또는:

>>> a=[1,3,1,1]
>>> b=[1,1,3,3]
>>> a>b
True
>>> b>a
False

결과는 약간 낯선 사람입니다. 파이썬은 실제로 무엇을하고 있습니까? 결과는 가장 왼쪽 요소가 해당 요소보다 큰 첫 번째 목록에 대한 결과를 반환하는 것 같습니다.

해결법

  1. ==============================

    1.파이썬 튜토리얼에서 시퀀스와 다른 유형 비교하기 :

    파이썬 튜토리얼에서 시퀀스와 다른 유형 비교하기 :

    또한 사전 순 서적에 관한 Wikipedia 기사를 참조하십시오.

  2. ==============================

    2.필자는 "사전 편집 순서"를 사용하여 목록 / 튜플 비교에 대한 설명을 찾지 못했기 때문에 특히 처음에는 밝게 표시했습니다. 여기에 "내 자신의 말로"설명하려고 시도했습니다. 첫째, 아래의 설명에서 언급 된 몇 가지 예시 목록이 있습니다.

    필자는 "사전 편집 순서"를 사용하여 목록 / 튜플 비교에 대한 설명을 찾지 못했기 때문에 특히 처음에는 밝게 표시했습니다. 여기에 "내 자신의 말로"설명하려고 시도했습니다. 첫째, 아래의 설명에서 언급 된 몇 가지 예시 목록이 있습니다.

    a = [1, 2, 3]
    b = [1, 2, 10]
    c = [1, 2, 3, 100]
    d = [1, 2, 3]
    e = [1, 2, 3, 4, 'a']
    f = ['a', 'b', 'c']
    

    각 색인의 항목 쌍이 순서대로 비교됩니다. 따라서 a와 b를 비교하면 1이 1과 비교되고 2는 2와 비교되고 3은 10과 비교됩니다.

    불균등 한 항목 쌍이 발견되거나 목록이 다른 길이 인 경우 더 짧은 목록의 끝에 도달하면 쌍의 비교가 중지됩니다.

    예를 들어 a와 b를 비교할 때 3과 10을 비교하면 비교가 중단됩니다. b와 c를 비교할 때 10과 3을 비교하면 비교가 중단됩니다.

    불평등 쌍이 발견 되 자마자, 전체 결과는 불평등 항목을 비교 한 결과입니다. 이것은 목록의 길이가 같은지 여부에 관계없이 적용됩니다. 예를 들어 목록 b가 목록 c보다 크면 100이라는 값이 적용되지 않습니다.

    예를 들어, a와 b를 비교하면 전체 결과는 3과 10을 비교 한 결과가됩니다. 3이 10보다 작으므로 a True. 3> 10이기 때문에 a> b -> False == b -> 3은 10과 같지 않으므로 False입니다.

    목록 중 하나가 더 짧고 N 개의 항목이 긴 목록의 첫 번째 N 개의 항목과 같으면 a와 c와 같이 더 짧은 목록은 긴 목록보다 작은 것으로 간주되므로 (a는 c보다 작음)

    두 개의 목록은 길이가 같고 모든 항목 쌍이 동등한 경우에만 동등한 것으로 비교됩니다.

    유형에 대한 참고 사항 : 쌍의 항목이 비교할 수없는 경우 비교는 TypeError와 함께 평소대로 실패합니다. 예를 들어, a와 f를 비교하면 1이 'a'와 비교 될 때 실패합니다. 그러나 d와 e의 목록은 e의 'a'가 d의 어떤 것과도 비교되지 않기 때문에 비교 될 수 있음에 유의하십시오.

  3. from https://stackoverflow.com/questions/13052857/comparing-two-lists-using-the-greater-than-or-less-than-operator by cc-by-sa and MIT license