all() 및 zip() 함수를 이용한 확인
이 단계에서는 all() 및 zip() 함수를 정렬된 튜플과 함께 사용하여 보다 고급 확인 및 비교를 수행하는 방법을 배웁니다.
all() 함수는 반복 가능한 객체의 모든 요소가 참인 경우 (또는 반복 가능한 객체가 비어 있는 경우) True를 반환하는 내장 Python 함수입니다. 시퀀스의 모든 요소에 대해 조건이 충족되는지 확인하는 데 자주 사용됩니다.
zip() 함수는 여러 반복 가능한 객체를 인수로 받아 튜플의 이터레이터를 반환하는 또 다른 내장 Python 함수입니다. 각 튜플에는 입력 반복 가능한 객체에서 해당하는 요소가 포함되어 있습니다. 비교 또는 기타 작업에 대해 서로 다른 시퀀스의 요소를 쌍으로 묶는 데 유용합니다.
이러한 함수를 정렬된 튜플과 함께 사용하는 방법을 살펴보겠습니다.
- LabEx 환경에서 VS Code 편집기를 엽니다.
~/project 디렉토리에서 기존 파일 sort_tuple.py를 수정하거나, 존재하지 않는 경우 만듭니다.
- 다음 코드를
sort_tuple.py에 복사하여 붙여넣습니다.
## Checking if a tuple is sorted using all() and zip()
def is_sorted(data):
## zip(data, data[1:]) pairs consecutive elements
## all(x <= y for x, y in ...) checks if each pair is in ascending order
return all(x <= y for x, y in zip(data, data[1:]))
my_tuple1 = (1, 2, 3, 4, 5)
my_tuple2 = (5, 2, 8, 1, 9)
print("Tuple 1:", my_tuple1, "is sorted:", is_sorted(my_tuple1))
print("Tuple 2:", my_tuple2, "is sorted:", is_sorted(my_tuple2))
이 코드는 주어진 튜플이 오름차순으로 정렬되었는지 확인하는 is_sorted() 함수를 정의합니다. zip()을 사용하여 튜플의 연속된 요소를 쌍으로 묶고, all()을 사용하여 각 쌍이 오름차순인지 확인합니다.
스크립트를 실행하려면 VS Code 에서 터미널을 열고 (하단 패널에서 찾을 수 있습니다) 다음 명령을 실행합니다.
python sort_tuple.py
다음 출력을 볼 수 있습니다.
Tuple 1: (1, 2, 3, 4, 5) is sorted: True
Tuple 2: (5, 2, 8, 1, 9) is sorted: False
보시다시피, is_sorted() 함수는 튜플이 정렬되었는지 여부를 올바르게 식별합니다.
이 예제를 확장하여 정렬 후 두 튜플이 동일한지 확인해 보겠습니다.
## Checking if two tuples are identical after sorting
def are_identical_after_sorting(tuple1, tuple2):
return sorted(tuple1) == sorted(tuple2)
tuple_a = (3, 1, 4, 1, 5)
tuple_b = (1, 5, 1, 4, 3)
tuple_c = (1, 2, 3, 4, 5)
print("Tuple A:", tuple_a, "and Tuple B:", tuple_b, "are identical after sorting:", are_identical_after_sorting(tuple_a, tuple_b))
print("Tuple A:", tuple_a, "and Tuple C:", tuple_c, "are identical after sorting:", are_identical_after_sorting(tuple_a, tuple_c))
이 코드를 sort_tuple.py 파일에 추가하고 다시 실행합니다.
python sort_tuple.py
이제 출력에는 다음이 포함되어야 합니다.
Tuple A: (3, 1, 4, 1, 5) and Tuple B: (1, 5, 1, 4, 3) are identical after sorting: True
Tuple A: (3, 1, 4, 1, 5) and Tuple C: (1, 2, 3, 4, 5) are identical after sorting: False
이 예에서 are_identical_after_sorting() 함수는 원래 순서에 관계없이 두 튜플에 동일한 요소가 포함되어 있는지 확인합니다. 두 튜플을 정렬한 다음 정렬된 리스트를 비교합니다.