Python sorted() 函数和sort()函数对比分析
Python sorted() 函数
一、概述
sorted()函数是对所有可迭代的对象进行排序操作。
sort与sorted的区别:
sort是应用在list上的方法,sorted可以对所有可迭代的对象进行排序操作。list的sort方法返回的是对已经存在的列表进行操作,无返回值,而内置的sorted函数返回的是一个新的list,而不是在原来的基础上进行的操作。
二、语法
sorted语法:
sorted(iterable, cmp=None, Key=None, reverse=False)
参数说明:
- iterable--可迭代对象
- cmp--比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵循的规则为,大于则返回1,小于则返回-1,等于则返回0.
- key--主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse--排序规则,reverse=True降序,reverse=Fasle升序(默认)。
三、返回值
sorted()方法的返回值是升序排列后的新列表。
sort()方法无返回值,但是使用sort()方法之后,排序后的列表会覆盖原来的列表。
四、示例
4.1 sorted函数示例代码:
a = [5, 7, 6, 3, 4, 1, 2]
b = sorted(a) # 保留原列表
print(a) # [5, 7, 6, 3, 4, 1, 2]
print(b) # [1, 2, 3, 4, 5, 6, 7]
L = [('b', 2), ('a', 1), ('c', 3), ('d', 4)]
L1 = sorted(L, key=lambda x: x[1]) # 利用key
print(L) # [('b', 2), ('a', 1), ('c', 3), ('d', 4)]
print(L1) # [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
students = [('tom', 'A', 16), ('jack', 'B', 12), ('bob', 'A', 19)]
students_desc = sorted(students, key=lambda age: age[2], reverse=True) # 按年龄降序排列,默认reverse是False
print(students) # [('tom', 'A', 16), ('jack', 'B', 12), ('bob', 'A', 19)]
print(students_desc) # [('bob', 'A', 19), ('tom', 'A', 16), ('jack', 'B', 12)]
4.2 sort函数示例代码:
li_one = [6, 3, 4, 1]
li_two = [7, 3, 5, 4]
li_three = ['java', 'c', 'python']
li_one.sort()
print(li_one) # [1, 3, 4, 6]
li_two.sort(reverse=True)
print(li_two) # [7, 5, 4, 3]
li_three.sort()
print(li_three) # ['c', 'java', 'python']
students = [('tom', 'A', 16), ('jack', 'B', 12), ('bob', 'A', 19)]
students.sort(key=lambda age: age[2])
print(students) # [('jack', 'B', 12), ('tom', 'A', 16), ('bob', 'A', 19)]
Python sorted() 函数和sort()函数对比分析的更多相关文章
- python:数组/列表(remove()函数、append()函数、sort()函数、reverse()函数)
排序: 1:整理顺序 #冒泡 lista = [5,7,11,19,99,63,3,9,1] list = [] while lista != []: number = 0 for i in list ...
- qsort函数、sort函数【转】
http://blog.163.com/yuhua_kui/blog/static/9679964420142195442766/ 先说明一下:qsort和sort,只能对连续内存的数据进行排序,像链 ...
- qsort函数、sort函数 (精心整理篇)
先说明一下qsort和sort,只能对连续内存的数据进行排序,像链表这样的结构是无法排序的. 首先说一下, qsort qsort(基本快速排序的方法,每次把数组分成两部分和中间的一个划分值,而对于有 ...
- qsort函数、sort函数
先说明一下qsort和sort,只能对连续内存的数据进行排序,像链表这样的结构是无法排序的. 首先说一下, qsort qsort(基本快速排序的方法,每次把数组分成两部分和中间的一个划分值,而对于有 ...
- qsort函数以及sort函数使用方法
sort函数的使用方法 做ACM题的时候,排序是一种常常要用到的操作. 假设每次都自己写个冒泡之类的O(n^2)排序,不但程序easy超时,并且浪费宝贵的比赛时间,还非常有可能写错. STL里面 ...
- python下使用sort()函数对目录下文件名进行多条件排序
目录 1.基础函数 2.例子解析 参考 1.基础函数 a.sort()函数 sort()函数的作用是对列表内容进行正向排序,直接在原列表进行修改,返回的是修改后的列表. lists =[1, 5, 1 ...
- python 列表排序方法sort、sorted技巧篇
Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. 1)排序基础 简单的升序排序是非常容易的.只需要调用sorte ...
- C中的qsort函数和C++中的sort函数的理解与使用
一.qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); ...
- #C++初学记录(sort函数)
sort函数 前言:当进行贪心算法的学习时,需要用到sort函数,因为初学c++汇编语言,sort的具体用法没有深入学习,所以这里进行sort学习记录并只有基础用法并借用贪心算法题目的代码. 百度百科 ...
- 1806最大数 string和sort函数用法
1.C++自带sort函数用法 sort函数有三个参数: (1)第一个是要排序的数组的起始地址 (2)第二个是结束的地址(最后一位要排序的地址) (3)第三个参数是排序的方法,可以是从大到小也可是从小 ...
随机推荐
- .NET周报 【4月第4期 2023-04-23】
国内文章 2023成都.NET线下技术沙龙圆满结束 https://www.cnblogs.com/edisonchou/p/2023_chengdu_dotnet_club_activity_rev ...
- ts中接口
前言:ts定义接口的任意一个属性 interface IPerson { name: string age: number family?: any[] // Error,因为不是任意类型的子集 [p ...
- Python-HwTestReport的简单使用
一.工具包下载 https://github.com/hongweifuture/HwTestReport(出自此大神) 二.使用示例(直接上代码) 1.将 HwTestReport.py 导入项目 ...
- MQTT.fx的安装和使用
一.下载和安装 MQTT.fx支持Windows/Linux/Mac,附下载地址:http://www.jensd.de/apps/mqttfx/,下载完成之后双击进行安装. 二.配置使用 打开软件, ...
- 【解决方法】windows连接域时报错:An Active Directory Domain Controller(AD DC) for the domain“chinaskills.com“....
目录-快速跳转 问题描述 原因分析: 解决方案: 附言: 问题描述 操作环境与场景: 在 VM 内 windos 2019 在连接到域时,提示报错: An Active Directory Domai ...
- selenium web控件的交互进阶
Action ActionChains: 执行PC端的鼠标点击,双击,右键,拖曳等事件 TouchActions: 模拟PC和移动端的点击,滑动,拖曳,多点触控等多种手势操作 动作链接 ActionC ...
- 【深入浅出 Yarn 架构与实现】6-4 Container 生命周期源码分析
本文将深入探讨 AM 向 RM 申请并获得 Container 资源后,在 NM 节点上如何启动和清理 Container.将详细分析整个过程的源码实现. 一.Container 生命周期介绍 Con ...
- annotate()使用聚合计数、求和、平均数 raw()执行原生的SQL
annotate()使用聚合计数.求和.平均数 raw()执行原生的SQL # 按老师分组,求课程的销量 Course.objects.values('Teacher').annotate(vol= ...
- Express实战个人订阅号实现网站登录
今天我们来实现一个使用个人订阅号实现网站的功能,后端使用的是 express .其它框架原理基本一致,只是定义路由或返回响应数据部分代码跟 express 有所出入.先来一波效果图: 1. 前言 20 ...
- LeetCode刷题,代码随想录算法训练营Day3| 链表理论基础 203.移除链表元素 707.设计链表 206.反转链表
链表理论基础 链表是通过指针串联在一起的线性结构,每个节点由一个数据域和一个指针域构成. 链表的类型 单链表 双链表 有两个指针域,一个指向下一个节点,一个指向上一个节点,既可以向前查询也可以向后查询 ...