리스트 안에 리스트가 중첩된 구조에서는 각 하위 리스트의 같은 인덱스에 위치한 요소들이 하나의 '열(column)'처럼 동작합니다. 이 글에서는 이러한 중첩 리스트에서 특정 열을 삭제하는 방법을 알아보겠습니다. 즉, 모든 하위 리스트에서 동일한 인덱스 위치의 요소를 제거해야 합니다.
pop() 메서드 사용하기
pop() 메서드는 지정한 위치의 요소를 제거하고 그 값을 반환합니다. for 루프를 사용해 각 하위 리스트를 순회하면서 특정 인덱스의 요소를 pop으로 제거하면 원하는 열을 삭제할 수 있습니다.
예제 코드
# 리스트의 리스트
listA = [[3, 9, 5, 1],
[4, 6, 1, 2],
[1, 6, 12, 18]]
# 원본 리스트 출력
print("주어진 리스트 \n", listA)
# pop 적용 - 인덱스 2의 요소 제거
[i.pop(2) for i in listA]
# 결과 출력
print("열 삭제 후 리스트 :\n ", listA)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
주어진 리스트 [[3, 9, 5, 1], [4, 6, 1, 2], [1, 6, 12, 18]] 열 삭제 후 리스트 : [[3, 9, 1], [4, 6, 2], [1, 6, 18]]
del 키워드 사용하기
두 번째 방법은 del 키워드를 사용하는 것입니다. 앞서 살펴본 pop() 방식과 유사하지만, 삭제할 열의 인덱스를 직접 지정한다는 점이 다릅니다. del은 값을 반환하지 않고 해당 위치의 요소를 단순히 제거합니다.
예제 코드
# 리스트의 리스트
listA = [[3, 9, 5, 1],
[4, 6, 1, 2],
[1, 6, 12, 18]]
# 원본 리스트 출력
print("주어진 리스트 \n", listA)
# del 적용 - 인덱스 2의 요소 제거
for i in listA:
del i[2]
# 결과 출력
print("열 삭제 후 리스트 :\n ", listA)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
주어진 리스트 [[3, 9, 5, 1], [4, 6, 1, 2], [1, 6, 12, 18]] 열 삭제 후 리스트 : [[3, 9, 1], [4, 6, 2], [1, 6, 18]]
마무리
이처럼 Python에서는 pop() 메서드와 del 키워드 두 가지 방법으로 중첩 리스트에서 특정 열을 손쉽게 삭제할 수 있습니다. 삭제된 값이 필요하다면 pop()을, 단순히 제거만 하면 되는 경우에는 del을 사용하는 것이 효율적입니다. 상황에 맞는 방법을 선택해 코드를 작성해 보세요.