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

Python – K 값을 기준으로 튜플 잘라내기

튜플을 특정 K 값에 따라 잘라내야 할 때는 간단한 반복문과 append 메서드를 활용하면 됩니다. 이 방법은 리스트 안의 각 튜플에서 앞뒤로 K개의 요소를 제거한 새로운 튜플을 만들어 결과 리스트에 저장하는 방식입니다.

아래 예제를 통해 실제 동작 과정을 살펴보겠습니다.

예제 코드

my_list = [(44, 3, 68, 11, 5), (68, 44, 9, 5, 8), (8, 11, 2, 68, 5), (44, 68, 2, 5, 7)]

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

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

my_result = []

for element in my_list:
    list_length = len(element)
    my_result.append(tuple(list(element)[K: list_length - K]))

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

실행 결과

리스트 :
[(44, 3, 68, 11, 5), (68, 44, 9, 5, 8), (8, 11, 2, 68, 5), (44, 68, 2, 5, 7)]
K 값 :
1
결과 리스트 :
[(3, 68, 11), (44, 9, 5), (11, 2, 68), (68, 2, 5)]

코드 설명

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

  • 잘라낼 기준이 되는 K 값을 정의하고 콘솔에 출력합니다.

  • 결과를 담을 빈 리스트를 하나 생성합니다.

  • 리스트를 순회하면서 각 튜플(요소)의 길이를 변수에 저장합니다.

  • 인덱싱을 활용해 K번째 요소부터 (요소 길이 − K)번째까지의 부분을 추출한 뒤, 다시 튜플로 변환합니다.

  • 변환된 튜플을 앞서 만든 빈 리스트에 추가(append)합니다.

  • 모든 처리가 끝나면 최종 결과 리스트를 콘솔에 출력합니다.

추가 팁: 리스트 컴프리헨션 활용하기

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

K = 1
my_result = [tuple(elem[K: len(elem) - K]) for elem in my_list]
print(my_result)

이처럼 Python에서는 슬라이싱과 반복 구조를 조합하여 중첩된 데이터 구조도 손쉽게 가공할 수 있습니다.