[Python] :: 리스트(list) 원소 비교 방법

파이썬에서 자료형의 대소 비교(Comparison)는 각 자료형의 특성에 따라 정해진 규칙을 따릅니다. 단순히 숫자뿐만 아니라 문자열, 리스트, 불리언(Boolean) 등도 비교가 가능합니다.

주요 자료형별 비교 규칙을 정리해 드릴게요.


1. 숫자형 (int, float)

가장 직관적입니다. 수학적인 크기를 비교하며, 정수(int)와 실수(float)를 섞어서 비교해도 수학적으로 정확하다면 True를 반환합니다.

  • 5 < 10True

  • 3.14 <= 3False

  • 10 == 10.0True (값 자체가 같으므로)

2. 문자열 (str)

문자열은 **사전 순서(Lexicographical Order)**로 비교합니다. 하지만 단순히 가나다순이 아니라, 각 문자가 가진 유니코드(Unicode) 숫자 값을 기준으로 합니다.

  • 알파벳 순: "apple" < "banana"True (‘a’가 ‘b’보다 앞섬)

  • 대소문자: "Apple" < "apple"True (대문자 ‘A’의 값이 소문자 ‘a’보다 작음)

  • 길이와 상관없음: "10" < "2"True (첫 번째 문자인 ‘1’과 ‘2’를 먼저 비교하기 때문)

3. 불리언 (bool)

불리언은 내부적으로 True는 1, False는 0으로 처리됩니다.

  • True > FalseTrue (1 > 0)

  • True == 1True

  • False == 0True

4. 리스트 및 튜플 (list, tuple)

시퀀스 자료형은 첫 번째 요소부터 하나씩 차례대로 비교합니다. 첫 번째 요소에서 승부가 나면 뒤의 요소는 보지 않습니다.

  • [1, 2, 3] < [1, 2, 4]True (1, 2는 같고, 3 < 4이므로)

  • [2, 0, 0] > [1, 9, 9]True (첫 번째 요소인 2가 1보다 크므로 뒤는 무시)

  • 주의: 비교하는 두 리스트의 요소 타입이 서로 다르면 TypeError가 발생할 수 있습니다.

5. 서로 다른 자료형 간의 비교

파이썬 3에서는 서로 다른 타입(예: 숫자와 문자열) 간의 대소 비교(>, <)를 금지하고 있습니다.

  • 5 < "5"TypeError 발생 (비교 기준이 모호하기 때문)

  • 단, 같음(==)이나 다름(!=) 비교는 가능합니다. 결과는 항상 False 또는 True입니다.

    • 5 == "5"False