第五十四节 排序Sort

  • 前言
  • 实践

前言

我们常需要对列表、元组中的元素进行排序,例如按照字母表排列学生的名称。这里就需要用到列表的sort()方法,以及sorted()函数。

实践

我们先来构建一个包含5个学生名字的列表:

names = ["Jon", "Bob", "Avil", "Tom", "Justin"]

然后我们对其中的学生名字按照字母表的顺序进行排列:

names.sort(reverse=False)
print(names)
>>> ['Avil', 'Bob', 'Jon', 'Justin', 'Tom']

这里的reverse=False为升序排列,若为reverse=True就是降序排列。
如果names不为列表,我们就不能用sort方法进行排序,而需要用sorted函数:

names = ("Jon", "Bob", "Avil", "Tom", "Justin")
sorted_names = sorted(names, reverse=True)
print(sorted_names)
>>> ['Tom', 'Justin', 'Jon', 'Bob', 'Avil']

可见,此时的names为元组,我们用sorted函数对其排序并指明排序方式。
如果我们的数据包含多列呢,此时还可以通过key参数指定按照哪一列排列:

details = [("Jon", "A", 89), ("Bob", "B", 12), ("Avil", "A", 25), ("Tom", "F", 58), ("Justin", "B", 12),]
index = lambda x: x[0]
details.sort(key=index, reverse=False)
print(details)
>>> [('Avil', 'A', 25), ('Bob', 'B', 12), ('Jon', 'A', 89), ('Justin', 'B', 12), ('Tom', 'F', 58)]

我们通过匿名函数指定按照第一列进行排列。如果原始数据不为列表,就需要用下述操作:

details = (("Jon", "A", 89), ("Bob", "B", 12), ("Avil", "A", 25), ("Tom", "F", 58), ("Justin", "B", 12),)
index = lambda x: x[2]
sorted_details = sorted(details, key=index, reverse=False)
print(sorted_details)
>>> [('Bob', 'B', 12), ('Justin', 'B', 12), ('Avil', 'A', 25), ('Tom', 'F', 58), ('Jon', 'A', 89)]

可见我们按照最后一列升序排列。

以上便是排序的全部内容,感谢大家的收藏、点赞、评论。我们下一节将介绍map函数(Map),敬请期待~

Python编程基础:第五十四节 排序Sort相关推荐

  1. Python编程基础:第二十四节 作用域Scope

    第二十四节 作用域Scope 前言 实践 前言 在Python中每一个变量都有其自己的生命周期,我们一般将变量分为全局变量与局部变量,全局变量是指在整个代码内部都可以访问到的变量,局部变量是指只有在函 ...

  2. Python编程基础:第十四节 列表Lists

    第十四节 列表Lists 前言 实践 前言 列表是一种非常常用的数据结构.我们可以用它来存储各种类型的数据. 实践 我们先来创建一个名为food的列表,里面存储了一系列我喜欢的食物名称: food = ...

  3. Python编程基础:第二十九节 异常Exception

    第二十九节 异常Exception 前言 实践 前言 我们在写代码时不可避免地会出错,这时候编译器便会抛出异常并中断程序的执行.针对这种情况,我们可以采用异常处理的方式捕捉程序中的异常信息,并将异常信 ...

  4. Python编程基础:第十九节 索引Index Operator

    第十九节 索引Index Operator 前言 实践 前言 我们在字符串学习过程中已经接触过索引的相关内容,我们在这里做一个小结,Python中的索引分为两部分,一种是从左向右,从0开始依次递增,例 ...

  5. Python编程基础:第十六节 元组Tuple

    第十六节 元组Tuple 前言 实践 前言 我们这一节来学习一个与列表非常相似的数据结构--元组.需要注意的是元组定义好以后,其中的元素是不能改变的,并且所有元素是有序排列的, 实践 我们先来创建一个 ...

  6. Python编程基础:第二十六节 kwargs参数**kwargs

    第二十六节 kwargs参数**kwargs 前言 实践 前言 上一节我们尝试传入任意多的参数,我们这一节来学习传入任意多具有参数名称的参数.kwargs参数将用户传入的参数打包为字典传入函数中用于进 ...

  7. 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出

    第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...

  8. python输入123输出321的编程_第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出...

    第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...

  9. Python编程基础:第二十五节 args参数*args

    第二十五节 args参数*args 前言 实践 前言 我们目前学习到的函数的参数个数都是固定的,那么我们是否可以指定任意多个参数呢?其实是可以的,这里就用到了args参数,它可以将用户指定的任意多个参 ...

最新文章

  1. AAAI 2021最佳论文《Informer》作者:Transformer 最新进展
  2. TCP窗口大小的利与弊转载自
  3. php grepmatch,linux最快的文本搜索神器ripgrep(grep的最好代替者)
  4. 最悲剧的HTML5 API : Position地理位置
  5. Linux常用命令(第二版) --帮助命令
  6. Delphi 7 以来的语法等变化
  7. 2020年中职学计算机有前途吗,2020年南昌中专计算机专业都学什么
  8. 鸿蒙开发者测评,看了下鸿蒙开发者测试版本
  9. 用Navicat for Mysql导入.sql文件
  10. 我们为什么需要SDN?---致新人
  11. 桌面没有计算机图标6,我的电脑图标没了怎么办
  12. javplayer 使用教程_工程测绘CASS教程+视频讲解+插件大合集,小白3天学会绘图
  13. VS 2013编译xvid
  14. 数学分析教程(科大)——1-(1~10)小节
  15. 宿主机上docker0 Linux 网桥设备是怎么来的?
  16. 数据库数据误删除恢复
  17. 西门子SMART200 PLC和托利多电子称自由口通讯程序
  18. 新浪微博PC客户端(DotNet WinForm版)—— 初探
  19. java Double去掉科学计数E
  20. 日常学习之:使用均值来填补缺失值的条件

热门文章

  1. PAT甲级1114 Family Property:[C++题解]结构体、并查集、测试点3、4、5有问题的进来!!
  2. 编写Thymeleaf视图以展示数据
  3. 惠普打印机节能环保认证证书_学生在家学习 入门级喷墨打印机 300元-500元档
  4. 关闭oracle服务 linux,Linux下启动和关闭Oracle服务与数据库
  5. flutter 局部状态和全局状态区别_Flutter状态管理
  6. 用加法器构造能够实现连续加法的电路
  7. 微型计算机的典型应用场景,单片机有哪些类型和应用场景?-MCU解决方案
  8. Android 的简介和体系结构中每个层的功能。
  9. android opencv hu moment,学习OpenCV:hu矩
  10. mysql percona server_MySQL Study之--Percona Server版本