Python程式用於根據浮點數元素對元組進行排序


本文將演示如何編寫一個Python程式,使用其浮點數元素對元組(由浮點數元素組成)進行排序。在這裡,我們將瞭解如何使用內建的sorted()函式進行排序,以及如何使用就地排序方法進行排序。

輸入-輸出場景

以下是確定根據浮點數元素對元組進行排序的輸入和輸出場景-

場景-1

Input:
tuple = [(‘Dengu’, ’54.865’), (‘Malaria’, ‘345.743’), (‘Corona’, ‘456.864’), (‘Typhoid’, ‘35.285’), (‘Jaundice’, ’83.367’)]
Output:
[(‘Corona’, ‘456.864’), (‘Malaria’, ‘345.743’), (‘Jaundice’, ’83.367’), (‘Dengu’, ’54.865’), (‘Typhoid’, ‘35.285’)]

在上述場景中,我們可以看到元組已使用其浮點數元素按降序排序。

場景-2

Input:
tuple = [(‘638’, ’54.865’), (‘932’, ‘345.743’), (‘256’, ‘456.864’), (‘843’, ‘35.285’), (‘246’, ’83.367’)]
Output:
[(‘256’, ‘456.864’), (‘932’, ‘345.743’), (‘246’, ’83.367’), (‘638’, ’54.865’), (‘843’, ‘35.285’)]

在上述場景中,我們可以看到元組已按其浮點數元素而不是整數的值降序排序。

使用sorted()方法

在不更改初始序列的情況下,Sorted() 對元組進行排序,並始終返回一個按排序順序排列專案的元組。在這裡,我們嘗試使用了所有三個引數,即iterable、key(可選)和reverse(可選),其中兩個是可選的。

演算法

以下演算法描述了使用sorted()方法根據浮點數元素對元組進行排序的方法-

  • 提供一個列表

  • 使用sorted進行排序().

  • 任何需要排序的迭代器,無論是集合(字典、集合、凍結集合)、序列(列表、元組、字串)還是其他型別。

  • 使用函式key(可選)作為排序比較的基礎將充當鍵。

  • 如果將Reverse(可選)設定為true,則iterable將按反向(降序)排序。預設情況下,它設定為false。

示例

以下是使用sorted()方法根據浮點數元素對元組進行排序的Python程式碼-

def sort_tuple(X): return(sorted(X, key = lambda n: float(n[1]), reverse = True)) # The driver Code X = [('Dengu', '54.865'), ('Malari', '345.743'), ('Corona', '456.864'), ('Typhoi', '35.285'), ('Jaundice', '83.367')] print("Sorting of Tuples Using Its Float Element ::",sort_tuple(X))

輸出

以下是上述程式碼的輸出-

Sorting of Tuples Using Its Float Element :: [('Corona', '456.864'), ('Malari', '345.743'), ('Jaundice', '83.367'), ('Dengu', '54.865'), ('Typhoi', '35.285')]

使用sort()方法

在此排序方法中,元組的實際內容會發生更改,而在先前的方法中,原始元組的內容保持不變。

演算法

以下演算法描述了使用sort()方法根據浮點數元素對元組進行排序的方法-

  • 建立一個新的元組列表。
  • 定義排序函式(用於排序元組)。
  • 將第二個元素設定為排序鍵。
  • 使用lambda子列表。
  • 列印結果。

示例

在此程式碼中,使用此排序方法會更改元組的實際內容。sort()函式使用項之間的預設比較運算子按升序或降序對列表的元素進行排序。使用key引數指定要用於比較的函式名稱,而不是預設運算子-

def sort(tuple): # sorting in descending order by setting reverse as true using float elements tuple.sort(key = lambda x: float(x[1]), reverse = True) print(tuple) # The driver Code tuple = [('638', '54.865'), ('932', '345.743'), ('256', '456.864'), ('843', '35.285'), ('246', '83.367')] sort(tuple)

輸出

以下是上述程式碼的輸出-

[('256', '456.864'), ('932', '345.743'), ('246', '83.367'), ('638', '54.865'), ('843', '35.285')]

使用二分查詢操作

在我們的程式碼中,我們有一個元組列表,我們必須使用元組的第二個成員(排序索引)對其進行排序。我們將有效地使用一種排序方法,但我們將使用元組的第二個元素而不是列表中的第一個值。

演算法

以下演算法描述了使用二分查詢操作根據其浮點數元素的排序索引對元組進行排序的方法-

  • 列表初始化。
  • 列印初始列表。
  • 定義元組列表的長度。
  • 使用二分函式進行排序。
  • 列印結果

示例

此程式使用二分排序方法執行排序。列表將使用由元組的第二個項確定的索引進行排序-

# Create a new tuple tuple_list = [('638', 54.865), ('932', 345.743), ('256', 456.864), ('843', 35.285), ('246', 83.367)] print("The orignal list is : ", str(tuple_list)) # Sort the list of tuples using the second item Len = len(tuple_list) for i in range(0, Len): for j in range(0, (Len - i - 1)): if(tuple_list[j][1] < tuple_list[j+1][1]): temp = tuple_list[j] tuple_list[j] = tuple_list[j+1] tuple_list[j+1] = temp print("The sorted list is : ", str(tuple_list))

輸出

以下是上述程式碼的輸出-

The orignal list is :  [('638', 54.865), ('932', 345.743), ('256', 456.864), ('843', 35.285), ('246', 83.367)]
The sorted list is :  [('256', 456.864), ('932', 345.743), ('246', 83.367), ('638', 54.865), ('843', 35.285)]

更新於: 2022年11月23日

2K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告