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

파이썬에서 N번째 하위 리스트까지 요소 추출하기

이 튜토리얼에서는 리스트에 포함된 하위 리스트(sublist)들 중 N번째 하위 리스트까지의 요소를 추출하는 프로그램을 작성해 보겠습니다.

예를 들어, 다음과 같이 5개의 하위 리스트로 구성된 리스트가 있다고 가정해 보겠습니다.

[['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']]

여기서 우리는 첫 번째부터 세 번째 하위 리스트까지 각각의 첫 번째 요소를 가져와야 합니다. 이를 구현하는 방법은 여러 가지가 있으며, 지금부터 대표적인 세 가지 접근 방식을 살펴보겠습니다.

1. 반복문(Loops) 활용하기

대부분의 개발자가 가장 먼저 떠올리는 방법은 반복문을 사용하는 것입니다. 가장 일반적이고 직관적인 방식이기도 합니다. 코드를 통해 확인해 보겠습니다.

예제 코드

# 리스트와 N 초기화
random_list = [['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']]
N = 3

# 결과를 저장할 빈 리스트 생성
desired_elements = []

# 세 번째 요소까지 순회하며 처리
for i in range(N):
    # 각 하위 리스트의 첫 번째 요소를 저장
    desired_elements.append(random_list[i][0])

# 결과 출력
print(desired_elements)

실행 결과

['Python', 'C', 'Javascript']

2. 리스트 컴프리헨션(List Comprehension) 활용하기

파이썬다운 간결한 문법인 리스트 컴프리헨션을 사용하면 위의 for 반복문 코드를 한 줄로 줄일 수 있습니다. 코드가 더 짧아질 뿐만 아니라 가독성도 향상됩니다.

예제 코드

# 리스트와 N 초기화
random_list = [['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']]
N = 3

# 슬라이싱으로 앞의 N개 하위 리스트에서 첫 번째 요소만 추출
desired_elements = [sublist[0] for sublist in random_list[:N]]

# 결과 출력
print(desired_elements)

실행 결과

['Python', 'C', 'Javascript']

random_list[:N]처럼 슬라이싱(slicing)을 함께 사용하면 원하는 범위의 하위 리스트만 깔끔하게 처리할 수 있습니다.

3. 내장 모듈과 메서드 활용하기

파이썬은 다양한 내장 모듈과 메서드를 제공합니다. 이번에는 map, operator.itemgetter, 그리고 itertools.islice를 조합하여 같은 결과를 얻어 보겠습니다. 대용량 데이터를 다룰 때 특히 유용한 방식입니다.

예제 코드

# 필요한 메서드 임포트
import operator   # itemgetter 사용
import itertools  # islice 사용

# 리스트와 N 초기화
random_list = [['Python', 'Java'], ['C', 'Pascal'], ['Javascript', 'PHP'], ['C#', 'C++'], ['React', 'Angular']]
N = 3

# islice로 앞의 N개 하위 리스트를 잘라낸 후, 첫 번째 요소만 추출
desired_elements = list(map(operator.itemgetter(0), itertools.islice(random_list, N)))

# 결과 출력
print(desired_elements)

실행 결과

['Python', 'C', 'Javascript']

islice는 리스트 전체를 복사하지 않고 필요한 만큼만 순회하므로, 데이터가 클수록 성능 면에서 유리합니다.

마무리

지금까지 세 가지 방법으로 N번째 하위 리스트까지의 요소를 추출하는 방법을 알아보았습니다. 이번 예제에서는 편의상 각 하위 리스트의 첫 번째 요소를 가져왔지만, 인덱스 값을 변경하면 두 번째, 세 번째 요소 등 원하는 위치의 요소도 동일한 방식으로 추출할 수 있습니다.

상황에 따라 적합한 방법을 선택하시면 됩니다. 초보자에게는 반복문, 간결함을 원한다면 리스트 컴프리헨션, 성능과 확장성을 고려한다면 내장 모듈 조합을 추천합니다. 튜토리얼 내용 중 궁금한 점이 있다면 댓글로 남겨주세요.