파이썬에서 두 개의 리스트를 하나로 합친 뒤 오름차순으로 정렬해야 하는 경우가 자주 있습니다. 이럴 때는 리스트를 매개변수로 받아 병합하고 정렬하는 함수를 직접 정의하면 간단하게 처리할 수 있습니다.
예제 코드
def merge_list(list_1, list_2):
merged_list = list_1 + list_2
merged_list.sort()
return(merged_list)
list_1 = [20, 18, 9, 51, 48, 31]
list_2 = [28, 33, 3, 22, 15, 20]
print("The first list is :")
print(list_1)
print("The second list is :")
print(list_2)
print(merge_list(list_1, list_2))실행 결과
The first list is : [20, 18, 9, 51, 48, 31] The second list is : [28, 33, 3, 22, 15, 20] [3, 9, 15, 18, 20, 20, 22, 28, 31, 33, 48, 51]
코드 설명
'merge_list'라는 이름의 함수를 정의하고, 두 개의 리스트를 매개변수로 받습니다.
'+' 연산자를 사용하여 두 리스트를 하나로 연결합니다.
연결된 결과는 새로운 변수 'merged_list'에 할당됩니다.
'sort()' 메서드를 호출하여 최종 리스트를 오름차순으로 정렬합니다.
함수 외부에서 두 개의 리스트를 정의하고, 콘솔에 출력하여 원본 데이터를 확인합니다.
정의된 함수를 호출하면서 두 리스트를 인자로 전달합니다.
병합 및 정렬된 최종 결과가 콘솔에 출력됩니다.
참고: sorted() 함수 활용하기
원본 리스트를 변경하지 않고 싶다면 내장 함수인 sorted()를 사용하는 것도 좋은 방법입니다. sorted(list_1 + list_2)처럼 한 줄로 작성하면 새롭게 정렬된 리스트를 반환하며, 기존 리스트에는 영향을 주지 않습니다. 반면 위 예제에서 사용한 sort() 메서드는 해당 리스트 자체를 제자리에서(in-place) 정렬한다는 차이가 있습니다.