1.前言

昨天一学妹问我一个关于python的问题,当时在外忙碌,没时间细看。今天看一下,咋一看我还真的不知道这个问题,bookinfo.sort(reverse=True ,key=lambda x:(x[1],x[1]/x[2]))是如何排序的。但是我猜测应该是按照第二个元素排序,如果第二个元素相同,就按照第二个元素和第三个元素的比值排序。猜测归猜测,自己就去测试了一下。过程如下。

2.环境准备

系统:win10

python版本:3.6

3.程序实现

为了满足实验要求,就设置几个第二个元素相同的数据如:摆渡人

bookinfo=[('不一样的卡梅拉(全套)',22.50,120),('零基础学Android',65.10,89.80),

('摆渡人',23.40,36.00),('福尔摩斯探案全集8册',22.50,128),('不一样的卡梅拉(全套)',22.50,100),('摆渡人',23.40,40.00)]

bookinfo.sort(key=lambda x:(x[1],x[1]/x[2]))

for temp in bookinfo:

print(temp,"x[1]/x[2]:",temp[1]/temp[2])

程序运行后的结果是:

('福尔摩斯探案全集8册', 22.5, 128) x[1]/x[2]: 0.17578125

('不一样的卡梅拉(全套)', 22.5, 120) x[1]/x[2]: 0.1875

('不一样的卡梅拉(全套)', 22.5, 100) x[1]/x[2]: 0.225

('摆渡人', 23.4, 40.0) x[1]/x[2]: 0.585

('摆渡人', 23.4, 36.0) x[1]/x[2]: 0.6499999999999999

('零基础学Android', 65.1, 89.8) x[1]/x[2]: 0.7249443207126949

[Finished in 0.2s]

4.sort拓展

在使用sort函数的时候需要注意的是:该函数会修改原来的数组,不会返回新的数组。

如果想使用逆序则可以:bookinfo.sort(reverse=True,key=lambda x:(x[1],x[1]/x[2]))

key这个属性后的x是任意的,自定义的,代表当前的元素的内容。

以上所述是小编给大家介绍的python中sort排序使用详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

python数组排序sort_详解python中sort排序使用相关推荐

  1. Python 装饰器详解(中)

    Python 装饰器详解(中) 转自:https://blog.csdn.net/qq_27825451/article/details/84581272,博主仅对其中 demo 实现中不适合pyth ...

  2. python操作符op_详解python中的 is 操作符

    大家可以与Java中的 == 操作符相互印证一下,加深一下对引用和对象的理解.原问题: Python为什么直接运行和在命令行运行同样语句但结果却不同,他们的缓存机制不同吗? 其实,高票答案已经说得很详 ...

  3. python scatter参数详解_Python 中 scatter 函数参数及用法详解

    Python 中 scatter 函数参数及用法详解 Python 中 scatter 函数参数及用法详解 这里有新鲜出炉的 Python 教程, 程序狗速度看过来! Python 编程语言 Pyth ...

  4. python import io_详解Python IO编程

    文件读写 读文件 try: # windows下utf8 f = open('./README.md', 'r', encoding='utf8', errors='ignore') print(f. ...

  5. python流程控制-详解Python流程控制语句

    流程控制 流程:代码执行的过程 控制:对代码执行过程的把控 三大结构 顺序结构:代码默认从上到下,依次执行 分支结构:单项分支,双向分支,多项分支,巢状分支 循环结构:while循环和for循环 单项 ...

  6. python 标准输出_详解Python的标准输入输出

    本篇文章给大家分享的是详解Python的标准输入输出,内容挺不错的,希望可以帮助到有需要的朋友 一.标准输入输出 1.打印到屏幕 产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个 ...

  7. python数组排序方法详解(sort, sorted,argsort)

    这三个排序方法应对日常工作基本够用 先说一下三者的区别 sort, sorted 是用在 list 数据类型中的排序方法 argsort 是用在 numpy 数据类型中的排序方法( numpy 里也有 ...

  8. python循环语句-详解Python中的循环语句的用法

    一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...

  9. python scatter参数详解_Python中scatter函数参数及用法详解

    最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...

最新文章

  1. python梯度下降法实现线性回归_【机器学习】线性回归——多变量向量化梯度下降算法实现(Python版)...
  2. COM+组件注册方法
  3. 学java_如何一步一步的学Java
  4. 【深度学习】梯度消失和梯度爆炸问题的最完整解析
  5. Spark _16 _SparkUIMaster HA
  6. 安卓编程坐标系的一个问题
  7. 比较两个表格的不同_两表数据的核对,WPS表格似乎更加方便容易
  8. 征战云时代,如何捍卫企业数据安全?
  9. java的四种修饰符访问权限
  10. ubuntu下搭建车场环境(代码使用jekins构建)
  11. 关于win7启动看不到桌面的解决方法
  12. 测试用例入门(二) - 使用等价类划分法编写测试用例
  13. VLC支持的视频和音频文件扩展名
  14. python中pop类型_Python基础之基本数据类型
  15. 出售时间的网站(跟王利芬创建的优米网其中一种模式一样)
  16. 基于Spring boot的云客服系统实现
  17. 花式感染 Windows PE 病毒的一百种方法,你中过招吗?
  18. 短信验证码平台哪家速度快又稳定,推荐下?
  19. 武汉大学计算机学院2015级,武汉大学研究生课程-数据挖掘-2015级研究生试题.doc...
  20. PLC通讯实现-C#访问OpcUa实现读写PLC(十)

热门文章

  1. 计算机网络——链路层之局域网
  2. Leetcode--304. 二维区域和检索
  3. python pip gpl_python pip怎么更新包
  4. linux 查看vnc端口_VNC常用操作及常见问题解决办法汇总
  5. vts传感器采取船舶的_智慧船舶交通管理系统
  6. 多源异构数据_构建数字孪生城市的CIM数据平台哪家强?
  7. python中str和input_python中eval()函数和input()函数用法解析
  8. TensorFlow打印一个tensor值报错
  9. 逻辑回归实现多分类任务(python+TensorFlow+mnist)
  10. CompletableFuture详解~supplyAsync