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

파이썬 – 연속 튜플 확장하기

인접한 튜플들을 서로 연결하여 확장해야 하는 경우, 간단한 반복문만으로도 손쉽게 해결할 수 있습니다. 파이썬에서는 + 연산자를 사용해 두 튜플을 하나로 합칠 수 있으며, 이를 리스트의 인접한 요소들에 차례대로 적용하면 됩니다.

예제

아래는 전체 구현 예시입니다.

my_list = [(13, 526, 73), (23, 67, 0, 72, 24, 13), (94, 42), (11, 62, 23, 12), (93, ), (83, 61)]

print("The list is :")
print(my_list)

my_list.sort(reverse=True)
print("The list after sorting in reverse is :")
print(my_list)

my_result = []
for index in range(len(my_list) - 1):
   my_result.append(my_list[index] + my_list[index + 1])

print("The result is :")
print(my_result)

출력 결과

The list is :
[(13, 526, 73), (23, 67, 0, 72, 24, 13), (94, 42), (11, 62, 23, 12), (93,), (83, 61)]
The list after sorting in reverse is :
[(94, 42), (93,), (83, 61), (23, 67, 0, 72, 24, 13), (13, 526, 73), (11, 62, 23, 12)]
The result is :
[(94, 42, 93), (93, 83, 61), (83, 61, 23, 67, 0, 72, 24, 13), (23, 67, 0, 72, 24, 13, 13, 526, 73), (13,
526, 73, 11, 62, 23, 12)]

동작 설명

  • 튜플들로 이루어진 리스트를 정의한 뒤 콘솔에 출력합니다.

  • sort(reverse=True) 메서드를 사용해 리스트를 내림차순으로 정렬하고, 정렬된 결과를 다시 출력합니다.

  • 확장된 튜플을 담아둘 빈 리스트를 하나 생성합니다.

  • 리스트를 순회하면서 현재 요소와 바로 다음 요소를 + 연산자로 연결한 새 튜플을 만들어 빈 리스트에 추가합니다.

  • 모든 인접 쌍의 연결이 완료되면 최종 결과를 콘솔에 출력합니다.

리스트 컴프리헨션으로 더 간결하게 작성하기

위의 반복문 로직은 리스트 컴프리헨션(list comprehension)을 활용하면 한 줄로 줄일 수 있습니다.

my_result = [my_list[index] + my_list[index + 1] for index in range(len(my_list) - 1)]

이 방식은 코드 길이가 짧아질 뿐만 아니라 의도가 명확하게 드러나 가독성도 좋아지기 때문에, 실무에서는 이 패턴이 더 널리 선호됩니다. 참고로 마지막 요소에는 다음 요소가 없으므로 반복 범위가 len(my_list) - 1까지라는 점에 유의하세요.