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

Python – 리스트에서 N번째마다 등장하는 튜플의 K번째 요소 추출하기

리스트에 담긴 튜플들 중 N번째마다 등장하는 튜플에서 K번째 요소를 추출해야 하는 경우, 간단한 반복문과 append() 메서드를 활용하면 손쉽게 해결할 수 있습니다.

예제 코드

아래는 이를 구현한 예시입니다 −

my_list = [(54, 51, 23), (73, 24, 47), (24, 33, 72), (64, 27, 18), (63, 24, 67), (12, 25, 77), (31, 39, 80),(33, 55, 78)]

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

K = 1
print("K 값 :")
print(K)

N = 3
print("N 값 :")
print(N)

my_result = []

for index in range(0, len(my_list), N):
   my_result.append(my_list[index][K])

print("결과 :")
print(my_result)

실행 결과

리스트 :
[(54, 51, 23), (73, 24, 47), (24, 33, 72), (64, 27, 18), (63, 24, 67), (12, 25, 77), (31, 39, 80), (33, 55,
78)]
K 값 :
1
N 값 :
3
결과 :
[51, 27, 39]

코드 설명

  • 튜플들로 구성된 리스트를 정의하고 콘솔에 출력합니다.

  • 추출할 요소의 위치를 나타내는 K와, 몇 번째마다 추출할지 결정하는 N 값을 각각 정의한 뒤 화면에 표시합니다.

  • 추출된 결과를 저장할 빈 리스트를 하나 생성합니다.

  • range(0, len(my_list), N)을 사용해 인덱스 0부터 시작하여 N 간격으로 리스트를 순회하면서, 각 튜플의 K번째 위치에 있는 요소를 빈 리스트에 추가합니다.

  • 최종적으로 완성된 결과 리스트를 콘솔에 출력합니다.

대안 방법: 리스트 컴프리헨션 활용하기

위 코드는 리스트 컴프리헨션(list comprehension)을 사용하면 더욱 간결하게 작성할 수 있습니다.

my_result = [my_list[index][K] for index in range(0, len(my_list), N)]
print("결과 :")
print(my_result)  # [51, 27, 39]

이 방식은 동일한 결과를 반환하면서도 코드가 한 줄로 압축되어 가독성이 뛰어나며, 파이썬다운(Pythonic) 스타일로 평가받습니다. 데이터 규모가 큰 경우에는 성능 면에서도 일반적인 for문보다 유리한 편입니다.