Python 에서 리스트가 정렬되었는지 확인하는 방법 (오름차순/내림차순)

PythonBeginner
지금 연습하기

소개

이 랩에서는 Python 에서 리스트가 오름차순 또는 내림차순으로 정렬되었는지 여부를 확인하는 방법을 배우게 됩니다. 정렬된 리스트의 기본 사항과 다양한 프로그래밍 작업에서 어떻게 사용되는지 살펴봅니다.

이 랩은 Python 의 내장 함수를 사용하여 리스트를 생성하고 조작하는 과정을 안내합니다. sorted() 함수를 사용하여 기존 리스트에서 오름차순 및 내림차순으로 정렬된 새 리스트를 만드는 방법을 배우게 됩니다. 또한 이 랩에서는 문자열 리스트를 정렬하는 방법도 보여줍니다.

정렬된 리스트 탐구

이 단계에서는 Python 에서 정렬된 리스트에 대해 배우게 됩니다. 정렬된 리스트는 검색, 데이터 분석 및 알고리즘 최적화와 같은 작업에 프로그래밍의 기본입니다. Python 은 정렬된 리스트를 쉽게 생성하고 조작할 수 있는 내장 함수와 메서드를 제공합니다.

먼저, 간단한 숫자 리스트를 만들어 보겠습니다.

## Create a list of numbers
numbers = [5, 1, 4, 2, 8]
print(numbers)

위 코드를 ~/project 디렉토리의 sort_list.py 파일에 저장합니다. VS Code 편집기를 사용하여 이 파일을 만들 수 있습니다.

이제 터미널에서 다음 명령을 사용하여 스크립트를 실행합니다.

python ~/project/sort_list.py

원래 리스트가 출력되는 것을 볼 수 있습니다.

[5, 1, 4, 2, 8]

이 리스트를 정렬하려면 sorted() 함수를 사용할 수 있습니다. sorted() 함수는 반복 가능한 항목에서 새로운 정렬된 리스트를 반환합니다.

## Create a list of numbers
numbers = [5, 1, 4, 2, 8]

## Sort the list using the sorted() function
sorted_numbers = sorted(numbers)

## Print the sorted list
print(sorted_numbers)

sort_list.py 파일을 수정하여 위의 코드를 포함합니다. 그런 다음 스크립트를 다시 실행합니다.

python ~/project/sort_list.py

이제 정렬된 리스트가 출력되는 것을 볼 수 있습니다.

[1, 2, 4, 5, 8]

원래 numbers 리스트는 변경되지 않은 상태로 유지됩니다. sorted() 함수는 새로운 정렬된 리스트를 생성합니다.

리스트를 내림차순으로 정렬하려면 reverse 매개변수를 사용할 수 있습니다.

## Create a list of numbers
numbers = [5, 1, 4, 2, 8]

## Sort the list in descending order
sorted_numbers = sorted(numbers, reverse=True)

## Print the sorted list
print(sorted_numbers)

sort_list.py 파일을 수정하여 위의 코드를 포함합니다. 그런 다음 스크립트를 다시 실행합니다.

python ~/project/sort_list.py

내림차순으로 정렬된 리스트를 볼 수 있습니다.

[8, 5, 4, 2, 1]

문자열 리스트도 정렬할 수 있습니다.

## Create a list of strings
names = ["Alice", "Bob", "Charlie", "David"]

## Sort the list of strings
sorted_names = sorted(names)

## Print the sorted list
print(sorted_names)

sort_list.py 파일을 수정하여 위의 코드를 포함합니다. 그런 다음 스크립트를 다시 실행합니다.

python ~/project/sort_list.py

정렬된 이름 리스트를 볼 수 있습니다.

['Alice', 'Bob', 'Charlie', 'David']

문자열은 알파벳순으로 정렬됩니다.

오름차순 또는 내림차순 확인

이 단계에서는 리스트가 오름차순 또는 내림차순으로 정렬되었는지 확인하는 방법을 배우게 됩니다. 이는 데이터 유효성 검사 및 알고리즘 설계와 같은 많은 프로그래밍 시나리오에서 일반적인 작업입니다.

리스트가 정렬되었는지 확인하려면 리스트를 반복하고 인접한 요소를 비교할 수 있습니다. 각 요소가 다음 요소보다 작거나 같으면 리스트는 오름차순으로 정렬된 것입니다. 각 요소가 다음 요소보다 크거나 같으면 리스트는 내림차순으로 정렬된 것입니다.

VS Code 편집기를 사용하여 ~/project 디렉토리에 check_order.py라는 Python 스크립트를 만들어 보겠습니다.

다음은 리스트가 오름차순으로 정렬되었는지 확인하는 코드입니다.

def is_ascending(lst):
    for i in range(len(lst) - 1):
        if lst[i] > lst[i + 1]:
            return False
    return True

numbers = [1, 2, 3, 4, 5]
print(is_ascending(numbers))

numbers = [1, 3, 2, 4, 5]
print(is_ascending(numbers))

위 코드를 check_order.py에 저장합니다. 이제 다음 명령을 사용하여 스크립트를 실행합니다.

python ~/project/check_order.py

다음 출력을 볼 수 있습니다.

True
False

첫 번째 리스트 [1, 2, 3, 4, 5]는 오름차순으로 정렬되어 있으므로 함수는 True를 반환합니다. 두 번째 리스트 [1, 3, 2, 4, 5]는 오름차순으로 정렬되어 있지 않으므로 함수는 False를 반환합니다.

이제 리스트가 내림차순으로 정렬되었는지 확인하는 코드를 추가해 보겠습니다.

def is_descending(lst):
    for i in range(len(lst) - 1):
        if lst[i] < lst[i + 1]:
            return False
    return True

numbers = [5, 4, 3, 2, 1]
print(is_descending(numbers))

numbers = [5, 2, 3, 2, 1]
print(is_descending(numbers))

위 코드를 check_order.py 파일에 추가합니다. 완성된 check_order.py 파일은 다음과 같습니다.

def is_ascending(lst):
    for i in range(len(lst) - 1):
        if lst[i] > lst[i + 1]:
            return False
    return True

def is_descending(lst):
    for i in range(len(lst) - 1):
        if lst[i] < lst[i + 1]:
            return False
    return True

numbers = [1, 2, 3, 4, 5]
print(is_ascending(numbers))

numbers = [1, 3, 2, 4, 5]
print(is_ascending(numbers))

numbers = [5, 4, 3, 2, 1]
print(is_descending(numbers))

numbers = [5, 2, 3, 2, 1]
print(is_descending(numbers))

스크립트를 다시 실행합니다.

python ~/project/check_order.py

다음 출력을 볼 수 있습니다.

True
False
True
False

리스트 [5, 4, 3, 2, 1]은 내림차순으로 정렬되어 있으므로 함수는 True를 반환합니다. 리스트 [5, 2, 3, 2, 1]은 내림차순으로 정렬되어 있지 않으므로 함수는 False를 반환합니다.

이 연습에서는 Python 을 사용하여 리스트가 오름차순 또는 내림차순으로 정렬되었는지 확인하는 방법을 보여줍니다.

비교를 위한 sorted() 함수 사용

이 단계에서는 sorted() 함수를 사용하여 두 개의 리스트를 비교하는 방법을 배우게 됩니다. 리스트 비교는 프로그래밍에서 일반적인 작업이며, 특히 두 개의 데이터 집합이 동일한지 또는 한 리스트가 다른 리스트의 하위 집합인지 확인해야 할 때 유용합니다.

sorted() 함수는 두 리스트를 비교하기 전에 정렬하는 데 사용할 수 있습니다. 이렇게 하면 요소의 순서가 비교 결과에 영향을 미치지 않습니다.

VS Code 편집기를 사용하여 ~/project 디렉토리에 compare_lists.py라는 Python 스크립트를 만들어 보겠습니다.

다음은 sorted() 함수를 사용하여 두 개의 리스트를 비교하는 코드입니다.

def compare_lists(list1, list2):
    sorted_list1 = sorted(list1)
    sorted_list2 = sorted(list2)
    if sorted_list1 == sorted_list2:
        return True
    else:
        return False

list_a = [3, 1, 2]
list_b = [1, 2, 3]
print(compare_lists(list_a, list_b))

list_c = [3, 1, 2]
list_d = [1, 2, 4]
print(compare_lists(list_c, list_d))

위 코드를 compare_lists.py에 저장합니다. 이제 다음 명령을 사용하여 스크립트를 실행합니다.

python ~/project/compare_lists.py

다음 출력을 볼 수 있습니다.

True
False

list_alist_b 리스트는 동일한 요소를 포함하므로 함수는 True를 반환합니다. list_clist_d 리스트는 동일한 요소를 포함하지 않으므로 함수는 False를 반환합니다.

문자열을 사용한 다른 예를 고려해 보겠습니다.

def compare_lists(list1, list2):
    sorted_list1 = sorted(list1)
    sorted_list2 = sorted(list2)
    if sorted_list1 == sorted_list2:
        return True
    else:
        return False

list_e = ["apple", "banana", "cherry"]
list_f = ["cherry", "apple", "banana"]
print(compare_lists(list_e, list_f))

list_g = ["apple", "banana", "cherry"]
list_h = ["apple", "banana", "date"]
print(compare_lists(list_g, list_h))

위 코드를 compare_lists.py 파일에 추가합니다. 완성된 compare_lists.py 파일은 다음과 같습니다.

def compare_lists(list1, list2):
    sorted_list1 = sorted(list1)
    sorted_list2 = sorted(list2)
    if sorted_list1 == sorted_list2:
        return True
    else:
        return False

list_a = [3, 1, 2]
list_b = [1, 2, 3]
print(compare_lists(list_a, list_b))

list_c = [3, 1, 2]
list_d = [1, 2, 4]
print(compare_lists(list_c, list_d))

list_e = ["apple", "banana", "cherry"]
list_f = ["cherry", "apple", "banana"]
print(compare_lists(list_e, list_f))

list_g = ["apple", "banana", "cherry"]
list_h = ["apple", "banana", "date"]
print(compare_lists(list_g, list_h))

스크립트를 다시 실행합니다.

python ~/project/compare_lists.py

다음 출력을 볼 수 있습니다.

True
False
True
False

이 예제는 sorted() 함수를 사용하여 문자열 리스트를 비교하는 방법을 보여줍니다.

요약

이 랩에서는 Python 에서 정렬된 리스트를 탐구하고 sorted() 함수를 사용하여 기존 리스트에서 새로운 정렬된 리스트를 만드는 방법을 배웠습니다. reverse 매개변수를 사용하여 숫자 리스트를 오름차순 및 내림차순으로 정렬하는 방법을 살펴보았습니다.

이 랩에서는 sorted()를 사용할 때 원본 리스트가 변경되지 않고 새로운 정렬된 리스트를 반환한다는 것을 보여주었습니다. 또한 제공된 내용이 시연 전에 잘렸지만 sorted()가 문자열 리스트에도 적용될 수 있다는 것을 배웠습니다.