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

파이썬으로 정렬되지 않은 두 리스트를 병합해 정렬된 리스트 만들기

이 튜토리얼에서는 두 개의 리스트를 하나로 병합한 뒤, 결과 리스트를 정렬된 상태로 출력하는 파이썬 프로그램을 작성해 보겠습니다. 먼저 예시를 통해 어떤 동작을 수행하는지 살펴보겠습니다.

문제 이해하기

정렬되어 있지 않은 두 개의 리스트가 주어졌을 때, 두 리스트를 합친 후 전체를 오름차순으로 정렬하는 것이 목표입니다.

입력:
list_1 = [1, 3, 2, 0, 3]
list_2 = [20, 10, 23, 43, 56, -1]
출력:
[-1, 0, 1, 2, 3, 3, 10, 20, 23, 43, 56]

숫자뿐만 아니라 문자열 리스트에도 동일하게 적용할 수 있습니다.

입력:
list_1 = ["hafeez", "aslan"]
list_2 = ["abc", "kareem", "b"]
출력:
["abc", "aslan", "b", "hafeez", "kareem"]

알고리즘

구현은 매우 간단합니다. 다음 단계를 따라 코드를 작성해 보겠습니다.

1. 두 개의 리스트를 초기화합니다.
2. + 연산자를 사용해 두 리스트를 연결하고, 결과를 새로운 변수에 저장합니다.
3. 리스트의 sort() 메서드를 사용해 결과 리스트를 정렬합니다.
4. 정렬된 리스트를 출력합니다.

예제 1: 숫자 리스트

위 알고리즘을 실제 코드로 구현하면 다음과 같습니다.

## 리스트 초기화
list_1 = [1, 3, 2, 0, 3]
list_2 = [20, 10, 23, 43, 56, -1]

## 두 리스트 연결
new_list = list_1 + list_2

## sort() 메서드로 새 리스트 정렬
new_list.sort()

## 정렬된 리스트 출력
print(new_list)

출력 결과

위 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

[-1, 0, 1, 2, 3, 3, 10, 20, 23, 43, 56]

예제 2: 문자열 리스트

이번에는 같은 로직을 문자열 리스트에 적용해 보겠습니다.

## 리스트 초기화
list_1 = ["hafeez", "aslan"]
list_2 = ["abc", "kareem", "b"]

## 두 리스트 연결
new_list = list_1 + list_2

## sort() 메서드로 새 리스트 정렬
new_list.sort()

## 정렬된 리스트 출력
print(new_list)

출력 결과

프로그램을 실행하면 문자열이 사전 순(알파벳 순)으로 정렬된 것을 확인할 수 있습니다.

['abc', 'aslan', 'b', 'hafeez', 'kareem']

추가 팁: sorted() 함수 활용하기

원본 리스트를 변경하지 않고 새로운 정렬된 리스트를 만들고 싶다면 내장 함수 sorted()를 사용할 수도 있습니다.

list_1 = [1, 3, 2, 0, 3]
list_2 = [20, 10, 23, 43, 56, -1]

new_list = sorted(list_1 + list_2)
print(new_list)

sort() 메서드는 원본 리스트 자체를 정렬하는 반면, sorted() 함수는 정렬된 새로운 리스트를 반환한다는 차이점이 있습니다. 상황에 맞게 선택해서 사용하면 됩니다.

마무리

이처럼 파이썬에서는 + 연산자와 sort() 메서드만으로도 두 리스트를 손쉽게 병합하고 정렬할 수 있습니다. 튜토리얼에 대해 궁금한 점이 있다면 댓글로 남겨주세요.