소개
이 랩에서는 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_a와 list_b 리스트는 동일한 요소를 포함하므로 함수는 True를 반환합니다. list_c와 list_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()가 문자열 리스트에도 적용될 수 있다는 것을 배웠습니다.



