배열(리스트)의 모든 요소를 하나로 병합한 뒤, 그 숫자를 오름차순으로 정렬하여 출력해야 하는 경우가 있습니다. 이럴 때 두 개의 함수를 활용하면 깔끔하게 해결할 수 있습니다. 첫 번째 함수는 전달받은 숫자를 정렬한 후 정수형으로 변환하는 역할을 하고, 두 번째 함수는 리스트의 각 요소를 문자열로 매핑하여 하나의 문자열로 합친 뒤 첫 번째 함수를 호출합니다.
예제 코드
아래는 위 과정을 구현한 파이썬 코드입니다.
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함수를 호출하면, 최종 결과가 콘솔에 표시됩니다.
이처럼 문자열 변환과 정렬을 조합하면, 여러 숫자를 이어 붙인 큰 숫자도 손쉽게 자릿수별로 정렬할 수 있습니다.