📌  相关文章
📜  Python|按其浮动元素对元组进行排序

📅  最后修改于: 2022-05-13 01:54:50.532000             🧑  作者: Mango

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() 对元组进行排序,并始终以排序方式返回一个包含元素的元组,而不修改原始序列。它需要三个参数,其中两个是可选的,这里我们尝试使用所有三个参数:

  1. 可迭代序列(列表、元组、字符串)或集合(字典、集合、冻结集)或任何其他需要排序的迭代器。
  2. Key(optional) :一个作为键或排序比较基础的函数。
  3. 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