如何使用python sort列表()方法对列表进行排序

时间:2020-03-05 15:31:23  来源:igfitidea点击:

我们有一个数字或者字符串列表,我们希望在此列表中对项目进行排序。
基本上,我们可以使用排序方法或者分类功能来实现我们想要的。

排序和排序之间的差异是该排序是修改列表的列表方法,我们无法使用与元组等另一个对象的排序方法,而排序是创建新列表和原始函数的内置函数变化。

在本文中,我们将提及如何使用这些函数以升序或者降序方式排序,数字,字符串,元组或者字面上任何对象的列表。

我们还将提到如何定义自己的自定义函数。

  • 排序数字列表
  • 排序字符串列表
  • 对元组列表进行排序
  • 排序对象列表

1)对数字列表进行排序

通过"排序"方法,我们可以对整数或者浮点数的数字进行排序。

注意:该方法在对象之后为例如下

>>> Lst = [20, 25.4, 12, -16, -3.14, 3, -5, 7]
  >>> Lst.sort()
  >>> Lst
  [-16, -5, -3.14, 3, 7, 12, 20, 25.4]

如我们所知,对象的顺序已经改变了。

但是,如果我们希望在不更改的情况下保留原始列表并将新订单分配给新列表,我们将使用如下所示的"排序"功能。

>>> Lst = [20, 25.4, 12, -16, -3.14, 3, -5, 7]
  >>> Sorted_Lst = sorted(Lst)
  >>> Sorted_Lst
  [-16, -5, -3.14, 3, 7, 12, 20, 25.4]

如果我们希望以降序对列表进行排序,我们将使用关键字`反向且分配给它,而是如下。

>>> Lst = [20, 25.4, 12, -16, -3.14, 3, -5, 7]
  >>> Sorted_Lst = sorted(Lst, reverse = True)
  >>> Sorted_Lst
  [25.4, 20, 12, 7, 3, -3.14, -5, -16]

2)排序字符串列表

我们将使用"排序"或者"排序"或者用于排序字符串

>>> Lst = ['bmw','ford','audi','toyota']
    >>> Lst.sort()
    >>> Lst
    ['audi', 'bmw', 'ford', 'toyota']

我们还仍然使用"反向"关键字以降序排序。

>>> Lst = ['bmw','ford','audi','toyota']
    >>> Lst.sort(reverse=True)
    >>> Lst
    ['toyota', 'ford', 'bmw', 'audi']

注意:Python在小写字母之前对待所有大写字母

我们将在下面的例子中看到。

>>> Lst = ['bmw','ford','audi','Toyota']
    >>> Lst.sort()
    >>> Lst
    ['Toyota', 'audi', 'bmw', 'ford']

但是,我们可以使用关键字"key = strower"以以下面的"排序方法"来对shell 句不敏感方式进行排序列表。

>>> Lst = ['bmw','ford','audi','Toyota']
    >>> Lst.sort(key=str.lower)
    >>> Lst
    ['audi', 'bmw', 'ford', 'Toyota']

3)对元组列表进行排序

我们应该知道元组是不可变的对象当列表是可变的对象时,也是在我们排序两个元组时,我们通过比较元组的第一个元素来开始,如果它们不等于,则这是比较的结果。

>>> (5, 7) >> (5, 7) > (5, 9)
    False

当然,我们可以使用"排序方法"或者"排序"功能,以便排序组合元素。

>>> sorted([(5, 4), (3, 3), (3, 10)])
    [(3, 3), (3, 10), (5, 4)]
>>> sorted([('watermelon', 'green'), ('apple', ''), ('banana', '')])
    [('apple', ''), ('banana', ''), ('watermelon', 'green')]

注意:我们可以通过第二个元素对元组进行排序

我们将使用"Lambda"(Lambda)定义自己的关键功能如下。

>>> Lst = [("Amanda", 35), ("John", 30), ("Monica", 25)]
    >>> Lst.sort(key=lambda x: x[1])
    >>> print(Lst)
    [('Monica', 25), ('John', 30), ('Amanda', 35)]

4)对对象列表进行排序

对象是Python的数据类型的类型,要对此类型的数据类型进行排序,我们应该将此对象放在如下列表中。
假设我们有一个"学生"程序有姓名和年龄方法,如下所示: -

class Student:
        def __init__(self, name, age):
            self.name = name
            self.age = age

现在,我们将创建一些`学生进程,并将它们添加到列表中进行排序。

>>> John = Student('John', 30)
    >>> Amanda = Student('Amanda', 35)
    >>> Monica = Student('Monica', 25)
    >>> Lst = [John, Amanda, Monica]

如果我们在"名称"方法上对列表进行排序。

>>> Lst.sort(key=lambda x: x.name)
    >>> print([item.name for item in Lst])
    ['Amanda', 'John', 'Monica']

如果我们根据"年龄"方法对列表进行排序。

>>> Lst.sort(key=lambda x: x.age)
    >>> print([item.name for item in Lst])
    ['Monica', 'John', 'Amanda']

Python具有许多内置功能和方法,帮助我们解决问题,"sort"和"sorted",用于对任何数字,字符串,元组和对象进行排序。