파이썬에서 행렬(리스트의 리스트) 형태로 저장된 데이터의 N번째 열에 특정 요소가 존재하는지 확인해야 할 때, 내장 함수인 any() 메서드를 활용하면 매우 간단하게 처리할 수 있습니다.
any()는 반복 가능한 객체의 요소 중 하나라도 조건을 만족하면 True를 반환하고, 모두 만족하지 않으면 False를 반환하는 함수입니다. 이를 제너레이터 표현식과 함께 사용하면 특정 열을 손쉽게 검사할 수 있습니다.
예제 코드
my_list = [[34, 67, 89], [16, 27, 86], [48, 30, 0]]
print("리스트는 다음과 같습니다:")
print(my_list)
N = 1
print("N 값이 다음과 같이 초기화되었습니다:")
print(N)
elem = 30
my_result = any(sub[N] == elem for sub in my_list)
print("특정 열에 해당 요소가 존재합니까?")
print(my_result)실행 결과
리스트는 다음과 같습니다: [[34, 67, 89], [16, 27, 86], [48, 30, 0]] N 값이 다음과 같이 초기화되었습니다: 1 특정 열에 해당 요소가 존재합니까? True
코드 설명
리스트 안에 리스트가 포함된 중첩 리스트(행렬 구조)를 정의한 뒤, 콘솔에 출력합니다.
확인하고자 하는 열의 인덱스를 나타내는 변수 N을 초기화합니다.
초기화된 N 값을 콘솔에 출력합니다.
찾고자 하는 정수 값을 elem 변수에 할당합니다.
any()메서드와 제너레이터 표현식을 사용하여 각 행(row)의 N번째 요소가 elem과 일치하는지 순차적으로 검사합니다.검사 결과(True 또는 False)를 변수에 저장합니다.
저장된 결과를 콘솔에 출력합니다.
참고: N번째 열 자체를 추출하는 방법
요소의 존재 여부가 아니라 열 전체를 추출하고 싶다면 리스트 컴프리헨션(list comprehension)을 사용할 수 있습니다.
N = 1 nth_column = [row[N] for row in my_list] print(nth_column) # 결과: [67, 27, 30]
이처럼 any()와 리스트 컴프리헨션을 적절히 조합하면 행렬 데이터에서 원하는 열을 탐색하거나 추출하는 작업을 몇 줄의 코드로 깔끔하게 처리할 수 있습니다.