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

Python에서 각 하위 리스트의 마지막 요소 추출하는 방법

파이썬에서 리스트는 그 안에 또 다른 리스트를 요소로 가질 수 있습니다. 이처럼 중첩된 리스트를 하위 리스트(sublist)라고 부르며, 실무에서 이중 리스트 구조를 자주 다루게 됩니다. 이 글에서는 주어진 리스트에서 각 하위 리스트의 마지막 요소만 추출하는 다양한 방법을 예제와 함께 살펴봅니다.

1. for 반복문 사용

가장 직관적이고 기본적인 방법입니다. 각 하위 리스트를 순회하면서 인덱스 -1에 해당하는 값을 가져옵니다. 파이썬에서 음수 인덱스는 뒤에서부터 요소에 접근하므로, -1은 항상 마지막 요소를 가리킵니다.

예제

Alist = [['Mon', 1], ['Tue', 'Wed', "Fri"], [12,3,7]]
print("Given List:\n", Alist)
print("\n하위 리스트의 마지막 요소:\n")
for item in Alist:
    print(item[-1])

실행 결과

Given List:
[['Mon', 1], ['Tue', 'Wed', 'Fri'], [12, 3, 7]]
하위 리스트의 마지막 요소:
1
Fri
7

2. zip과 * 언패킹 활용

* 연산자는 하위 리스트를 언패킹(unpacking)하여 개별 요소에 접근할 수 있게 해줍니다. 여기서는 reversed 함수로 각 하위 리스트를 뒤집은 뒤 zip으로 묶어 첫 번째 위치, 즉 원래의 마지막 요소를 한 번에 꺼내는 방식입니다.

예제

Alist = [['Mon', 1], ['Tue', 'Wed', "Fri"], [12,3,7]]
print("Given List:\n", Alist)
print("\n하위 리스트의 마지막 요소:\n")
print(list(list(zip(*map(reversed, Alist)))[0]))

실행 결과

Given List:
[['Mon', 1], ['Tue', 'Wed', 'Fri'], [12, 3, 7]]
하위 리스트의 마지막 요소:
[1, 'Fri', 7]

3. itemgetter 사용

operator 모듈의 itemgetter(i)는 딕셔너리, 리스트, 튜플 같은 반복 가능한 객체를 입력받아 i번째 요소를 반환하는 호출 가능 객체(callable)를 생성합니다. map 함수와 함께 사용하면 반복문 없이도 간결하게 마지막 요소들을 모을 수 있습니다.

예제

from operator import itemgetter

Alist = [['Mon', 1], ['Tue', 'Wed', "Fri"], [12,3,7]]
print("Given List:\n", Alist)
print("\n하위 리스트의 마지막 요소:\n")
print(list(map(itemgetter(-1), Alist)))

실행 결과

Given List:
[['Mon', 1], ['Tue', 'Wed', 'Fri'], [12, 3, 7]]
하위 리스트의 마지막 요소:
[1, 'Fri', 7]

4. 보너스: 리스트 컴프리헨션

실무에서 가장 널리 쓰이는 파이썬다운 방법은 리스트 컴프리헨션(list comprehension)입니다. 한 줄로 간결하게 작성할 수 있고 가독성도 뛰어나, 위의 어떤 방법보다도 권장됩니다.

예제

Alist = [['Mon', 1], ['Tue', 'Wed', "Fri"], [12,3,7]]
last_items = [sublist[-1] for sublist in Alist]
print(last_items)

실행 결과

[1, 'Fri', 7]

마무리

학습 단계나 단순한 스크립트에서는 for 반복문이 이해하기 쉽고, 일반적인 실무 코드에서는 리스트 컴프리헨션이 가장 깔끔합니다. 대량의 데이터를 고성능으로 처리해야 한다면 C로 구현되어 속도가 빠른 itemgetter가 유리합니다. 상황에 맞는 방법을 선택해 활용해 보세요.