在 Python 中對元組進行排序

Vaibhhav Khetarpal 2023年1月30日 2021年2月28日
  1. 在 Python 中使用 list.sort() 函式對 Tuple 列表進行排序
  2. 使用 Python 中的氣泡排序演算法對 Tuple 列表進行排序
在 Python 中對元組進行排序

在 Python 中,可以使用 Tuples 將多個專案儲存在一個變數中。Tuples 列表可以像整數列表一樣進行排序。

本教程將討論根據元組中的第一個、第二個或第 i 個元素對元組列表進行排序的不同方法。

在 Python 中使用 list.sort() 函式對 Tuple 列表進行排序

list.sort() 函式按升序或降序對一個列表的元素進行排序。它的 key 引數指定在排序中要使用的值。key 應是一個函式或其他可呼叫的函式,可以應用於每個列表元素。

以下程式碼根據所有元組中的第二個元素對元組進行排序。

list_students = [('Vaibhhav',86), ('Manav',91) , ('Rajesh',88) , ('Sam',84), ('Richie',89)]

#sort by second element of tuple
list_students.sort(key = lambda x: x[1])   #index 1 means second element

print(list_students)

輸出:

[('Sam',84), ('Vaibhhav',86), ('Rajesh',88), ('Richie',89), ('Manav',91)]

通過設定 sort() 方法的 reverse 引數為 True,可以將順序反轉為降序。

下面的程式碼通過使用 reverse 引數將元組的列表按降序排序。

list_students = [('Vaibhhav',86), ('Manav',91) , ('Rajesh',88) , ('Sam',84), ('Richie',89)]

#sort by second element of tuple
list_students.sort(key = lambda x: x[1], reverse=True)

print(list_students)

輸出:

[('Manav',91), ('Richie',89), ('Rajesh',88), ('Vaibhhav',86), ('Sam',84)]

使用 Python 中的氣泡排序演算法對 Tuple 列表進行排序

氣泡排序是一種最簡單的排序演算法,它的工作原理是,如果列表中相鄰的元素順序不對,就將它們交換,並重復這一步,直到列表排序完畢。

以下程式碼根據第二個元素對元組進行排序,並使用氣泡排序演算法。

list_ = [('Vaibhhav',86), ('Manav',91) , ('Rajesh',88) , ('Sam',84), ('Richie',89)]

#sort by second element of tuple
pos = 1
list_length = len(list_)

for i in range(0, list_length):
    for j in range(0, list_length-i-1):  
        if (list_[j][pos] > list_[j + 1][pos]):  
            temp = list_[j]  
            list_[j]= list_[j + 1]  
            list_[j + 1]= temp  

print(list_)

輸出:

[('Sam',84), ('Vaibhhav',86), ('Rajesh',88), ('Richie',89), ('Manav',91)]

pos 變數指定了進行排序的位置,在本例中,就是第二個元素。

我們也可以使用第一個元素對元組列表進行排序。下面的程式實現了這一點。

list_ = [('Vaibhhav',86), ('Manav',91) , ('Rajesh',88) , ('Sam',84), ('Richie',89)]

#sort by first element of tuple
pos = 0
list_length = len(list_)  
for i in range(0, list_length):  
    for j in range(0, list_length-i-1):  
        if (list_[j][pos] > list_[j + 1][pos]):  
            temp = list_[j]  
            list_[j]= list_[j + 1]  
            list_[j + 1]= temp  

print(list_)

輸出:

[('Manav',91), ('Rajesh',88), ('Richie',89), ('Sam',84), ('Vaibhhav',86)]
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相關文章 - Python Tuple