Computer >> Máy Tính >  >> Lập trình >> Python

Sắp xếp các Tuples theo thứ tự tăng dần theo bất kỳ khóa nào trong chương trình Python

Trong hướng dẫn này, chúng ta sẽ sắp xếp danh sách các bộ giá trị theo thứ tự tăng dần theo khóa chỉ mục thứ n. Ví dụ:chúng tôi có danh sách các bộ giá trị [(2, 2), (1, 2), (3, 1)] sau đó, chúng ta phải sắp xếp nó bằng cách sử dụng phần tử chỉ mục thứ 0. Đầu ra cho danh sách đó sẽ là [(1, 2), (2, 2), (3, 1)] .

Chúng tôi có thể đạt được điều này bằng cách sử dụng đã sắp xếp phương pháp. Chúng tôi phải chuyển một khóa trong khi đưa danh sách vào đã sắp xếp hàm số. Ở đây, chìa khóa là chỉ mục dựa trên việc sắp xếp.

đã sắp xếp lấy một danh sách và trả về danh sách đó theo thứ tự tăng dần của thứ tự tăng dần. Nếu bạn muốn lấy danh sách theo thứ tự giảm dần, hãy đặt đảo ngược đối số từ khóa thành Đúng trong đã sắp xếp chức năng.

Hãy xem các bước để giải quyết vấn đề của chúng tôi.

Thuật toán

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.

Ví dụ

## 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)

Đầu ra

Nếu bạn chạy chương trình trên, bạn sẽ nhận được kết quả sau.

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

Nếu bạn khởi tạo khóa với chỉ số lớn hơn len (tuple) - 1 thì bạn sẽ gặp lỗi chỉ mục. Hãy xem.

Ví dụ

## 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)

Đầu ra

Nếu bạn chạy chương trình trên, bạn sẽ nhận được kết quả sau.

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

Chương trình trên sẽ hoạt động với bất kỳ số lượng bộ giá trị nào và bất kỳ kích thước nào của bộ giá trị cho đến khi chỉ mục không lớn hơn len (tuple) - 1 .

Kết luận

Tôi hy vọng bạn thích hướng dẫn. Nếu bạn có bất kỳ câu hỏi nào liên quan đến hướng dẫn này, vui lòng đề cập đến chúng trong phần bình luận.