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

파이썬에서 다른 리스트의 값을 기준으로 리스트를 마스킹하는 방법

파이썬에서 한 리스트의 각 요소가 다른 리스트에 포함되어 있는지 확인하고, 그 결과를 0과 1로 표현하는 '마스킹(masking)' 작업이 필요할 때가 있습니다. 이럴 때 리스트 컴프리헨션(list comprehension)을 활용하면 단 한 줄의 코드로 간결하게 처리할 수 있습니다.

예제 코드

아래는 다른 리스트의 값을 기준으로 리스트를 마스킹하는 예시입니다.

my_list = [5, 6, 1, 9, 11, 0, 4]

print("The list is :")
print(my_list)

search_list = [2, 10, 6, 3, 9]

result = [1 if element in search_list else 0 for element in my_list]

print("The result is :")
print(result)

출력 결과

The list is :
[5, 6, 1, 9, 11, 0, 4]
The result is :
[0, 1, 0, 1, 0, 0, 0]

코드 설명

  • my_list라는 리스트를 정의하고 콘솔에 출력합니다. 이 리스트가 마스킹의 대상이 됩니다.

  • search_list라는 또 다른 리스트를 정의합니다. 이 리스트는 마스킹 여부를 판단하는 기준값들을 담고 있습니다.

  • 리스트 컴프리헨션을 사용해 my_list의 각 요소를 순회하면서, 해당 요소가 search_list에 존재하면 1, 존재하지 않으면 0을 생성합니다.

  • 마스킹된 결과를 변수 result에 할당합니다.

  • 최종 결과를 콘솔에 출력합니다. 위 예제에서는 6과 9만 search_list에 포함되어 있으므로 [0, 1, 0, 1, 0, 0, 0]이 출력됩니다.

핵심 포인트

이 코드의 핵심은 조건 표현식(삼항 연산자)인 1 if element in search_list else 0 부분입니다. 각 요소가 검색 리스트에 속하는지를 판단해 1 또는 0을 만들어내는 것이 바로 마스킹의 원리입니다. 이러한 기법은 데이터 필터링, 불린 마스크 생성 등 다양한 데이터 처리 작업에서 유용하게 활용됩니다.