Python에서 목록이 비어 있는지 확인하는 방법(Pythonic 진리값)

Python에서 목록이 비어 있는지 확인하는 가장 Pythonic한 방법을 알아보세요. 길이 비교에 대해 암시적 부울 검사를 비교합니다.

Editor에서 이 솔루션을 사용해 보세요.

개요

Python 개발에서는 내용을 읽거나 수정하거나 처리하기 전에 목록에 요소가 포함되어 있는지 확인해야 하는 경우가 많습니다. 대괄호(예: `my_list[0]`)를 사용하여 빈 목록의 요소에 액세스하면 `IndexError`가 발생하여 프로그램 실행이 중단됩니다. 따라서 애플리케이션 안정성을 위해서는 깔끔하고 방어적인 검사 패턴을 구현하는 것이 필수적입니다.

목록이 비어 있는지 확인하는 가장 Python적인 방법은 암시적 부울 값(진실성)을 사용하는 것입니다. Python에서 빈 컬렉션(목록, 사전, 튜플 및 세트 포함)은 부울 컨텍스트에서 'False'로 평가되는 반면, 채워진 컬렉션은 'True'로 평가됩니다. `if not my_list:`를 작성하는 것은 직접적이고 읽기 쉬우며 PEP 8 지침을 준수합니다.

목록의 길이를 0과 비교하거나(예: `if len(my_list) == 0:`) 목록을 빈 목록 리터럴과 직접 비교하는 경우(예: `if my_list == []:`)도 작동하지만 이러한 접근 방식은 덜 간결하고 약간 느릴 수 있으므로 일반적으로 권장되지 않습니다. Python에 내장된 진리값 테스트를 수용하면 코드가 더 깔끔하고 효율적으로 만들어집니다.

코드 및 실행 출력

이 스크립트는 Python에서 목록이 비어 있는지 확인하는 다양한 방법을 보여줍니다.

empty_list = []
full_list = [10, 20, 30]

# Method 1: The Pythonic Way (Implicit boolean check)
if not empty_list:
    print("empty_list is indeed empty!")

if full_list:
    print("full_list has elements inside!")

# Method 2: Length comparison (Less Pythonic, but functional)
if len(empty_list) == 0:
    print("Length of empty_list is 0.")
터미널 출력
empty_list is indeed empty!
full_list has elements inside!
Length of empty_list is 0.

단계별 구현

  • my_list가 아닌 경우 작성: 목록이 비어 있는지 확인합니다(가장 Python적인 접근 방식).
  • if my_list: 목록에 하나 이상의 요소가 포함되어 있는지 확인하려면 작성하세요.
  • 비어 있음을 확인하기 위해 len(my_list) == 0 또는 my_list == []를 사용하지 마십시오.

자주 묻는 질문

'if len(my_list) == 0'보다 'if not my_list'가 선호되는 이유는 무엇입니까?

len() 함수 조회 및 정수 비교 호출을 방지하므로 더 읽기 쉽고 관용적이며 약간 더 빠릅니다.

이 검사는 사전이나 튜플과 같은 다른 컬렉션에도 적용되나요?

예, 빈 사전({}), 빈 튜플(()), 빈 집합(set()) 및 빈 문자열("")에는 정확히 동일한 진실성 규칙이 적용됩니다.

관련 주제

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.