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

파이썬으로 행렬에서 특정 길이의 행만 추출해 출력하는 방법

행렬(리스트의 리스트)에서 원하는 길이를 가진 행만 골라내어 출력해야 하는 경우, 리스트 컴프리헨션(list comprehension)을 활용하면 간결하고 효율적으로 처리할 수 있습니다.

예제 코드

아래는 리스트 컴프리헨션을 사용해 길이가 4인 행만 필터링하는 예제입니다.

my_list = [[22, 4, 63, 7], [24, 4, 85], [95], [2, 55, 4, 7, 91], [5, 31, 1]]

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

my_key = 4

my_result = [sub for sub in my_list if len(sub) == my_key]

print("The resultant list is :")
print(my_result)

실행 결과

The list is :
[[22, 4, 63, 7], [24, 4, 85], [95], [2, 55, 4, 7, 91], [5, 31, 1]]
The resultant list is :
[[22, 4, 63, 7]]

코드 설명

  • 먼저 여러 개의 리스트를 요소로 갖는 중첩 리스트(행렬)를 정의하고, 콘솔에 출력하여 확인합니다.

  • 찾고자 하는 행의 길이 기준이 되는 키 값을 변수 my_key에 저장합니다.

  • 리스트 컴프리헨션을 사용해 전체 리스트를 순회하면서, 각 요소(행)의 길이가 키 값과 일치하는지 len() 함수로 검사합니다.

  • 조건을 만족하는 행들로만 구성된 새로운 리스트가 생성되며, 이 결과는 변수 my_result에 할당됩니다.

  • 마지막으로 필터링된 결과 리스트를 콘솔에 출력합니다.

핵심 포인트

이 방식의 장점은 별도의 반복문이나 조건문 블록 없이 한 줄의 코드로 원하는 조건의 데이터를 추출할 수 있다는 점입니다. len(sub) == my_key 부분의 비교 연산자를 변경하면, 예를 들어 >= my_key(특정 길이 이상) 또는 < my_key(특정 길이 미만)와 같은 다양한 조건으로 확장할 수도 있습니다.