Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 리스트의 리스트 안에 특정 리스트가 존재하는지 확인하는 방법

파이썬에서 리스트는 중첩될 수 있습니다. 즉, 리스트의 요소 자체가 또 다른 리스트일 수 있습니다. 이 글에서는 주어진 리스트가 더 큰 외부 리스트의 요소로 존재하는지 확인하는 방법을 대표적인 두 가지 방식으로 살펴보겠습니다.

in 연산자 사용하기

가장 간단하고 직관적인 방법은 in 연산자를 사용하는 것입니다. 내부 리스트가 더 큰 리스트의 요소로 존재하는지 한 줄로 손쉽게 확인할 수 있습니다.

예제 코드

listA = [[-9, -1, 3], [11, -8], [-4, 434, 0]]
search_list = [-4, 434, 0]

# 주어진 리스트 출력
print("Given List :\n", listA)
print("list to Search: ", search_list)

# in 연산자로 존재 여부 확인
if search_list in listA:
    print("Present")
else:
    print("Not Present")

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Given List :
[[-9, -1, 3], [11, -8], [-4, 434, 0]]
list to Search: [-4, 434, 0]
Present

any() 함수 사용하기

any() 함수를 활용하는 방법도 있습니다. 제너레이터 표현식과 함께 사용하여, 외부 리스트의 각 요소가 검색하려는 리스트와 일치하는지 하나라도 참인 값이 있는지 검사합니다. in 연산자가 내부적으로 동일한 비교(==)를 수행하기 때문에 결과는 같지만, 조건을 확장해야 할 때는 any() 방식이 더 유연하게 활용될 수 있습니다.

예제 코드

listA = [[-9, -1, 3], [11, -8], [-4, 434, 0]]
search_list = [-4, 434, 0]

# 주어진 리스트 출력
print("Given List :\n", listA)
print("list to Search: ", search_list)

# any() 함수로 존재 여부 확인
if any(x == search_list for x in listA):
    print("Present")
else:
    print("Not Present")

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Given List :
[[-9, -1, 3], [11, -8], [-4, 434, 0]]
list to Search: [-4, 434, 0]
Present

마무리

두 방법 모두 시간 복잡도는 O(n)으로 리스트의 크기에 비례합니다. 단순히 존재 여부만 확인한다면 in 연산자가 가독성 면에서 가장 좋고, 부분 일치나 추가 조건이 필요하다면 any() 함수를 사용하는 것이 효과적입니다.