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

Python에서 행렬의 N번째 열 확인하기 – any() 메서드 활용법

파이썬에서 행렬(리스트의 리스트) 형태로 저장된 데이터의 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()와 리스트 컴프리헨션을 적절히 조합하면 행렬 데이터에서 원하는 열을 탐색하거나 추출하는 작업을 몇 줄의 코드로 깔끔하게 처리할 수 있습니다.