Python程式用於根據屬性對自定義物件元組進行排序
現在讓我們深入瞭解 Python 中的自定義物件是什麼。我們知道 Python 為我們提供了許多預定義的資料型別,可用於儲存各種型別的資料。但有時我們需要定義自定義資料型別來儲存無法用內建資料型別表示的資料。
為此,Python 為我們提供了“類”,這些類有助於我們自定義和建立適合我們需求的資料型別。一個類可以擁有資料和函式來實現某些行為。在 Python 中實現類的示例如下:
class TempClass: self.name = "" self.age = 0
上面給出了一個類的示例,該類名為“TempClass”,並存儲名稱和年齡,其預設值分別為“”和 0。我們使用 self 來定義我們正在訪問類的特定例項的值,並使用點“.”運算子來訪問類的元素。
現在我們知道了 Python 中的自定義物件是什麼,我們將瞭解自定義物件元組的含義。當元組的所有元素都是自定義物件(類例項)時,我們就說我們有一個自定義物件元組。
對於下面的示例,我們將考慮一個類,該類具有名稱和年齡作為其資料成員。我們將建立一個僅包含此類物件的元組。
使用 sort() 函式
sort() 函式是 Python 的一個內建函式,它以列表、對映、集合或元組的名稱作為引數,並對資料結構進行排序。
要使用 sort 函式對元組進行排序,我們將不得不使用型別轉換。思路是將類物件儲存在一個未排序的元組中,然後使用此元組並建立一個名稱列表並對其進行排序。使用此排序的名稱列表按名稱對整個元組進行排序。
演算法
步驟 1 – 將元組中元素的數量作為使用者輸入
步驟 2 – 使用 for 迴圈儲存所需的物件數量,在每次迭代中輸入名稱和年齡,並使用輸入值作為其資料元素儲存一個類物件。
步驟 3 – 建立一個名為 sortedNames 的列表,並遍歷 unsortedTuple,將每個物件的全部名稱元素儲存在 sortedNames 列表中
步驟 4 – 對 sortedNames 列表使用 sort 函式,現在我們有一個包含按排序順序排列的名稱的列表
步驟 5 – 建立一個名為 tuple 的排序元組,使用 for 迴圈遍歷 sortedNames 列表
步驟 6 – 使用另一個巢狀的 for 迴圈遍歷 unsortedTuple
步驟 7 – 檢查元組當前物件的名稱部分是否與 sortedNames 列表中的名稱相同
步驟 8 – 如果是,則將當前物件儲存在 sortedTuple 列表中,並退出內部迴圈
步驟 9 – 如果否,則繼續處理 unsorted tuple 的下一個物件
步驟 10 – 列印 sortedTuple 的元素
示例
讓我們來看一個例子:
class MyTuple:
def __init__(self, name, age) -> None:
self.name = name
self.age = age
unsortedTuple =( MyTuple("Vijay",23) , MyTuple("Aman",27), MyTuple("Aastha",21) )
print("Tuple before sorting by names are : ")
for person in unsortedTuple:
print(f"Name : {person.name} Age : {person.age}")
sortedTuple = sorted(unsortedTuple, key= lambda person: person.name)
print("Tuple after sorting by names are : ")
for person in sortedTuple:
print(f"Name : {person.name} Age : {person.age}")
輸出
Tuple before sorting by names are : Name : Raj Age : 23 Name : Aman Age : 21 Name : Suraj Age : 26 Tuple after sorting by names are : Name : Aman Age : 21 Name : Raj Age : 23 Name : Suraj Age : 26
使用帶 key 屬性的 sorted() 方法
或者,我們也可以使用 Python 的內建方法 sorted 方法以及 key 屬性來根據屬性對元組進行排序。
此函式返回指定可迭代物件的排序列表。key 屬性接收一個函式(通常是 lambda 函式),並根據這些鍵對可迭代物件進行排序。
示例
讓我們來看一個例子:
class MyTuple:
def __init__(self, name, age) -> None:
self.name = name
self.age = age
unsortedTuple =( MyTuple("Vijay",23) , MyTuple("Aman",27), MyTuple("Aastha",21) )
print("Tuple before sorting by names are : ")
for person in unsortedTuple:
print(f"Name : {person.name} Age : {person.age}")
sortedTuple = sorted(unsortedTuple, key= lambda person: person.name)
print("Tuple after sorting by names are : ")
for person in sortedTuple:
print(f"Name : {person.name} Age : {person.age}")
輸出
Tuple before sorting by names are : Name : Vijay Age : 23 Name : Aman Age : 27 Name : Aastha Age : 21 Tuple after sorting by names are : Name : Aastha Age : 21 Name : Aman Age : 27 Name : Vijay Age : 23
結論
在本文中,我們瞭解了 Python 中的自定義物件是什麼,以及如何使用類來實現它。我們還了解了如何建立自定義物件元組以及如何使用 sort 和 sorted 方法根據屬性對其進行排序。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP