Python|按其浮动元素对元组进行排序
在本文中,我们将看到如何使用其浮动元素对元组(由浮动元素组成)进行排序。在这里,我们将看到如何使用内置方法 sorted() 来做到这一点,以及如何使用 in place 排序方法来做到这一点。
例子:
Input : tuple = [('lucky', '18.265'), ('nikhil', '14.107'),
('akash', '24.541'), ('anand', '4.256'), ('gaurav', '10.365')]
Output : [('akash', '24.541'), ('lucky', '18.265'),
('nikhil', '14.107'), ('gaurav', '10.365'), ('anand', '4.256')]
Input : tuple = [('234', '9.4'), ('543', '16.9'), ('756', '5.5'),
('132', '4.2'), ('342', '7.3')]
Output : [('543', '16.9'), ('234', '9.4'), ('342', '7.3'),
('756', '5.5'), ('132', '4.2')]
我们可以从下图理解这一点:
方法一:使用 sorted() 方法
Sorted() 对元组进行排序,并始终以排序方式返回一个包含元素的元组,而不修改原始序列。它需要三个参数,其中两个是可选的,这里我们尝试使用所有三个参数:
- 可迭代:序列(列表、元组、字符串)或集合(字典、集合、冻结集)或任何其他需要排序的迭代器。
- Key(optional) :一个作为键或排序比较基础的函数。
- Reverse(optional) :如果设置为true,则iterable将以反向(降序)顺序排序,默认情况下设置为false。
要按升序排序,我们可以忽略第三个参数。
# Python code to sort the tuples using float element
# Function to sort using sorted()
def Sort(tup):
# reverse = True (Sorts in Descending order)
# key is set to sort using float elements
# lambda has been used
return(sorted(tup, key = lambda x: float(x[1]), reverse = True))
# Driver Code
tup = [('lucky', '18.265'), ('nikhil', '14.107'), ('akash', '24.541'),
('anand', '4.256'), ('gaurav', '10.365')]
print(Sort(tup))
输出:
[('akash', '24.541'), ('lucky', '18.265'), ('nikhil', '14.107'),
('gaurav', '10.365'), ('anand', '4.256')]
方法 2:使用 sort() 就地排序:
通过这种方法排序时,元组的实际内容发生了变化,而在前一种方法中,原始元组的内容保持不变。
# Python code to sort the tuples using float element
# Inplace way to sort using sort()
def Sort(tup):
# reverse = True (Sorts in Descending order)
# key is set to sort using float elements
# lambda has been used
tup.sort(key = lambda x: float(x[1]), reverse = True)
print(tup)
# Driver Code
tup = [('lucky', '18.265'), ('nikhil', '14.107'), ('akash', '24.541'),
('anand', '4.256'), ('gaurav', '10.365')]
Sort(tup)
输出:
[('akash', '24.541'), ('lucky', '18.265'), ('nikhil', '14.107'),
('gaurav', '10.365'), ('anand', '4.256')]
如需更多参考,请访问:
Python中的 sorted()
Python中的 lambda