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

파이썬으로 배열의 모든 요소를 병합해 형성된 숫자를 정렬하여 출력하기

배열(리스트)의 모든 요소를 하나로 병합한 뒤, 그 숫자를 오름차순으로 정렬하여 출력해야 하는 경우가 있습니다. 이럴 때 두 개의 함수를 활용하면 깔끔하게 해결할 수 있습니다. 첫 번째 함수는 전달받은 숫자를 정렬한 후 정수형으로 변환하는 역할을 하고, 두 번째 함수는 리스트의 각 요소를 문자열로 매핑하여 하나의 문자열로 합친 뒤 첫 번째 함수를 호출합니다.

예제 코드

아래는 위 과정을 구현한 파이썬 코드입니다.

def get_sorted_nums(my_num):

   my_num = ''.join(sorted(my_num))
   my_num = int(my_num)
   print(my_num)

def merged_list(my_list):

   my_list = list(map(str, my_list))
   my_str = ''.join(my_list)
   get_sorted_nums(my_str)

my_list = [7, 845, 69, 60, 99, 11]
print("The list is :")
print(my_list)
print("The result is :")
merged_list(my_list)

실행 결과

The list is :
[7, 845, 69, 60, 99, 11]
The result is :
11456678999

코드 설명

  • get_sorted_nums 함수: 숫자를 매개변수로 받아 처리하는 함수입니다.

  • 전달받은 값을 먼저 sorted()로 정렬한 뒤, join()을 사용해 하나의 문자열로 합칩니다.

  • 이후 int()로 정수형으로 변환하여 콘솔에 출력합니다.

  • merged_list 함수: 리스트를 매개변수로 받아 처리하는 함수입니다.

  • map(str, ...)을 사용해 리스트의 모든 요소를 문자열로 변환한 뒤 리스트로 만듭니다.

  • join()으로 요소들을 하나의 문자열로 연결한 후, 앞서 정의한 get_sorted_nums 함수에 전달하여 정렬과 정수 변환을 수행합니다.

  • 함수 외부에서는 정렬할 리스트를 정의하고 콘솔에 출력합니다.

  • 마지막으로 해당 리스트를 인자로 넘기며 merged_list 함수를 호출하면, 최종 결과가 콘솔에 표시됩니다.

이처럼 문자열 변환과 정렬을 조합하면, 여러 숫자를 이어 붙인 큰 숫자도 손쉽게 자릿수별로 정렬할 수 있습니다.