Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 프로그램에서 키를 기준으로 튜플을 오름차순으로 정렬

<시간/>

이 튜토리얼에서는 n번째 인덱스 키를 기준으로 튜플 목록을 오름차순으로 정렬합니다. 예를 들어, [(2, 2), (1, 2), (3, 1)] 튜플 목록이 있습니다. 그런 다음 0번째 인덱스 요소를 사용하여 정렬해야 합니다. 해당 목록의 출력은 [(1, 2), (2, 2), (3, 1)]입니다. .

sorted를 사용하여 이를 달성할 수 있습니다. 방법. 를 전달해야 합니다. 목록을 정렬된 기능. 여기서 키는 정렬 기준이 되는 인덱스입니다.

정렬 목록을 가져 와서 해당 목록을 오름차순으로 반환합니다. 목록을 내림차순으로 가져오려면 역순을 설정하세요. True에 대한 키워드 인수 정렬 기능.

문제를 해결하는 단계를 살펴보겠습니다.

알고리즘

1. Initialize list of tuples and key
2. Define a function. 2.1. Return key-th index number.
3. Pass list of tuples and function to the sorted function. We have to pass function name to
the keyword argument key. Every time one element (here tuple) to the function. The
function returns key-th index number.
4. Print the result.

예시

## list of tuples
tuples = [(2, 2), (1, 2), (3, 1)]
## key
key = 0
## function which returns the key-th index number from the tuple
def k_th_index(one_tuple):
return one_tuple[key]
## calling the sorted function
## pass the list of tuples as first argument
## give the function as a keyword argument to the **key**
sorted(tuples, key = k_th_index)

출력

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

[(1, 2), (2, 2), (3, 1)]

len(tuple) - 1보다 큰 인덱스로 키를 초기화하면 인덱스 오류가 발생합니다. 봅시다.

예시

## list of tuples
tuples = [(2, 2), (1, 2), (3, 1)]
## key
## initializing the key which is greter than len(tuple) - 1
key = 2
## function which returns the key-th index number from the tuple
def k_th_index(one_tuple):
return one_tuple[key]
## calling the sorted function
## pass the list of tuples as first argument
## give the function as a keyword argument to the **key**
sorted(tuples, key = k_th_index)

출력

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

IndexError Traceback (most recent call last)
<ipython-input-13-4c3fa14880dd> in <module>
13 ## pass the list of tuples as first argument
14 ## give the function as a keyword argument to the **key**
---> 15 sorted(tuples, key = k_th_index)
<ipython-input-13-4c3fa14880dd> in k_th_index(one_tuple)
8 ## function which returns the key-th index number from the tuple
9 def k_th_index(one_tuple):
---> 10 return one_tuple[key]
11
12 ## calling the sorted function
IndexError: tuple index out of range

위의 프로그램은 인덱스가 len(tuple) - 1보다 크지 않을 때까지 모든 수의 튜플과 모든 크기의 튜플에 대해 작동합니다. .

결론

튜토리얼을 즐겼기를 바랍니다. 튜토리얼과 관련하여 질문이 있는 경우 댓글 섹션에 언급해 주세요.