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+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告