Python sorted函数详解(高级篇)

yizhihongxing

Pythonsorted函数详解(高级篇)

Python中的sorted()函数是一种高级排序函数,它可以对列表、元组、字典等数据类型进行排序。本攻略将详细讲解sorted()的用法,包括基本用法、高级用法、自定义排序等。

基本用法

我们可以使用sorted()函数对列表进行排序。以下是示例代码,演示如何使用sorted()函数对列表进行排序:

lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
lst1 = sorted(lst)
print(lst1)

在上面的示例代码中,我们首先定义了包含11个整数的列表lst。然后,我们使用sorted()函数对lst进行排序,并将结果存储在lst1中。最后,我们输出lst1的内容。

输出结果为:

[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

高级用法

按关键字排序

我们可以使用key参数指定一个函数来生成排序关键字。以下是示例代码,演示如何按照关键字:

lst = ['apple', 'banana', 'orange', 'watermelon']
lst1 = sorted(lst, key=len)
print(lst1)

在上面的示例代码中我们首先定义了一个包含四个字符串的列表lst。然后我们使用key参数指定len函数作为排序关键字,对lst进行排序,并将结果存储在lst1中。最后,我们输出lst1的内容。

输出结果为:

['apple', 'banana', 'orange', 'watermelon']

按照多个关键字排序

我们可以使用多个关键字对列表进行排序。以下是示例代码,演示如何按照多个键字排序:

lst = [('apple', 3), ('banana', 2), ('orange', 4), ('watermelon', 1)]
lst1 = sorted(lst, key=lambda x: (x[1], x[0]))
print(lst1)

在面的示例代码中,我们首先定义了包含四个元组的列表lst,每个元组包含一个字符串和一个整数。然后,我们使用lambda函数作为排序关键字,对lst进行排序,首先按照第二个元素排序,然后按照第一个元素排序,并将结果存储在lst1中。最后,我们输出lst1的内容。

输出结果为:

[('watermelon', 1), ('banana', 2), ('apple', 3), ('orange', 4)]

自定义排序

我们可以使用cmp参数指定一个函数来进行自定义排序。以下是示例代码,演示如何进行自定义排序:

def cmp, y):
    if x[1] < y[1]:
        return -1
    elif x[1] > y[1]:
        return 1
    else:
        return 0

lst = [('apple', 3), ('banana', 2), ('orange', 4), ('watermelon', 1)]
lst1 = sorted(lst, cmp=cmp)
print(lst1)

在上面的示例代码中,我们首先定义了一个自定义排序函数cmp,该函数接受两个参数x和y如果x的第二个元素小于y的第二个元素,则返回-1,如果x的第二个元素大于y的第二个元素,则返回1,否则返回0。然后,我们定义一个包含四个元组的列表lst,每个元组包含一个字符串和一个整数。接着,我们使用cmp参数指定cmp函数作为排序函数,对lst进行排序将结果存储在lst1中。最后,我们输出lst1的内容。

输出结果为:

[('watermelon', 1), ('banana', 2), ('apple', 3), ('orange', 4)]

示例

以下是一个示例代码,演示了sorted()函数的基本用法、高级用法和自定义排序:

# 基用法
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 51 = sorted(lst)
print(lst1)

# 高级用法
lst = ['apple', 'banana', 'orange', 'watermelon']
lst1 = sorted(lst, key=len)
print(lst1)

lst = [('apple', 3), ('banana', 2), ('orange', 4), ('watermelon', 1)]
lst1 = sorted(lst, key=lambda x: (x[1], x[0]))
print(lst1)

# 自定义排序
def cmp(x, y):
    if x[1] y[1]:
        return -1
    elif x[1] > y[1]:
        return 1
    else:
        return 0

lst = [('apple', 3), ('banana', 2), ('orange', 4), ('watermelon', 1)]
lst1 = sorted(lst, cmp=cmp)
print(lst1)

在上面的示例代码中,我们演示了sorted()函数的基本用法、高级用法和自定义排序。首先,我们演了如何对列表进行排序。接着,我们演示了如何按照关键字排序和按照多个关键字排序。最后,我们演示了如何进行自定义排序。需要根据具体的需求选择合适的排序方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python sorted函数详解(高级篇) - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python3.6安装及引入Requests库的实现方法

    下面是“Python3.6安装及引入Requests库的实现方法”的完整攻略。 安装Python3.6 前往 Python官网 下载Python3.6的安装包,选择适合你操作系统的版本。 双击运行安装包,选择“Add Python to PATH”选项并确保安装路径无误,然后点击“Install Now”按钮。 等待安装完成,可以在命令行输入python命令…

    python 2023年5月14日
    00
  • 解决Python发送Http请求时,中文乱码的问题

    解决Python发送Http请求时中文乱码的问题 在Python中,我们经常需要发送HTTP请求。但是,当我们发送包含中文的HTTP请求时,可能会遇到中文乱码的问题。本文将介绍如何解决Python发送HTTP请求时中文乱码的问题,并提供两个示例代码。 方法1:使用urlencode方法编码中文参数 在Python中,我们可以使用urlencode方法将中文参…

    python 2023年5月15日
    00
  • Python 使用reduce()和partial()

    下面是 Python 使用 reduce() 和 partial() 的完整攻略。 reduce() 函数 reduce() 函数是 Python 内置的一个函数,可以对一个列表或可迭代对象中的所有元素连续使用一个函数进行操作,得到最终的结果。例如,我们可以通过 reduce() 函数来实现对列表中所有元素进行相加的操作。 reduce() 函数的用法如下所…

    python-answer 2023年3月25日
    00
  • pandas中的Timestamp只保留日期不显示时间

    首先,我们需要明确 Timestamp 是 Pandas 中一个用于处理时间序列的数据类型,它表示的是某个具体的时间点。默认情况下,Timestamp 会同时保留日期和时间信息。如果你想保留日期信息,移除时间信息,可以通过下列方法实现: import pandas as pd # 创建一个包含日期和时间的 Timestamp 对象 ts = pd.Times…

    python 2023年6月2日
    00
  • 利用python计算时间差(返回天数)

    下面是利用Python计算时间差(返回天数)的完整攻略。 标准库中的date、datetime模块 Python标准库中有两个模块可以用于处理日期和时间:date模块和datetime模块。其中,datetime模块是在date模块的基础上增加了时间相关的功能。我们可以使用datetime模块中的两个类: datetime.date:表示日期,包含年、月、日…

    python 2023年6月2日
    00
  • python如何进行矩阵运算

    Python是一种高效而简单的编程语言,提供了许多强大的工具来进行矩阵运算。本文将介绍利用python进行矩阵运算的方法,包括如何创建矩阵、如何进行基本的矩阵操作、以及如何使用numpy库中的函数进行更加复杂的矩阵运算。 创建矩阵 在Python中,最常见的创建矩阵的方法是使用列表嵌套列表的方式。例如,下面是一个3×3的矩阵: matrix = [[1, 2…

    python 2023年5月18日
    00
  • Python 保持递归形式

    Python 保持递归形式指通过使用尾递归和循环等技巧,使得递归函数的调用栈得以不断被压缩,从而可以最大程度地避免递归调用过深而导致的栈溢出等问题。下面将详细介绍如何保持递归形式的使用方法: 尾递归优化 尾递归指的是递归函数在调用自身后直接返回结果,不再对返回结果进行任何额外的处理,从而$渐进地消除每个递归调用。(这里的“渐进”指的是最终递归次数将到达一个恒…

    python-answer 2023年3月25日
    00
  • Python爬虫实战之爬取某宝男装信息

    Python爬虫实战之爬取某宝男装信息 本文将介绍如何使用Python爬虫爬取某宝男装信息。我们将使用Python的requests库和BeautifulSoup库来实现爬虫功能。以下是完整攻略: 步骤一:分析网页结构 在编写爬虫之前,我们需要先分析网页的结构,确定需要爬取的信息。我们可以使用Chrome浏览器的开发者工具来分析网页结构。以下是分析结果: 网…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部