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

파이썬으로 특정 길이(K)의 행을 제거하는 방법

리스트 안에 여러 개의 리스트(중첩 리스트)가 있을 때, 길이가 K와 같은 행을 걸러내고 싶은 경우가 있습니다. 이럴 때 가장 간단한 방법은 반복문과 len() 메서드, 그리고 append() 메서드를 활용하는 것입니다.

예제 코드

아래 예제를 통해 실제 동작 방식을 확인해 보겠습니다.

my_list = [[41, 7], [8, 10, 12, 8], [10, 11], [6, 82, 10]]

print("리스트 출력 :")
print(my_list)

my_k = 2
print("K 값 :")
print(my_k)

my_result = []

for row in my_list:
   if len(row) != my_k :
      my_result.append(row)

print("결과 리스트 :")
print(my_result)

출력 결과

리스트 출력 :
[[41, 7], [8, 10, 12, 8], [10, 11], [6, 82, 10]]
K 값 :
2
결과 리스트 :
[[8, 10, 12, 8], [6, 82, 10]]

코드 설명

  • 먼저 중첩된 리스트를 정의하고 콘솔에 출력합니다.

  • 제거 기준이 될 K 값을 정의하고 콘솔에 표시합니다.

  • 조건에 맞는 행을 담을 빈 리스트(my_result)를 생성합니다.

  • 반복문을 사용해 원본 리스트의 각 행을 하나씩 순회합니다.

  • 각 행의 길이가 K와 같지 않다면 해당 행을 결과 리스트에 추가합니다. 즉, 길이가 K인 행만 걸러지게 됩니다.

  • 최종적으로 필터링된 결과 리스트가 콘솔에 출력됩니다.

참고: 리스트 컴프리헨션으로 더 간결하게

위 코드는 리스트 컴프리헨션(list comprehension)을 사용하면 한 줄로 표현할 수도 있습니다.

my_result = [row for row in my_list if len(row) != my_k]

이 방식은 코드가 간결할 뿐만 아니라 실행 속도 면에서도 일반적인 반복문보다 유리한 경우가 많아, 파이썬에서 널리 권장되는 관용구(idiom)입니다.