qq_58505721 2021-09-10 19:54 采纳率: 100%
浏览 42
已结题

初学者没看懂,sort是排序我知道,但是这个排序方法是什么意思?

应用 lambda实现对爬取到的秒杀商品信息进行排序。
在IDLE中创建一个名称为 seckillsort.py的文件,然后在该文件中定义一个保存商品信息的列表并
输出,接下来使用列表对象的 sort()方法对列表进行排序,并且在调用sort()方法时,通过 lambda表达
式指定排序规则,最后输出排序后的列表,代码如下:

bookinfo =[('《不一样的卡梅拉(全套)》',22.50,120),('《零基础学 Python》',65.10,79.80),(,《摆渡人》',23.40,36.00),('《福尔摩斯探案全集8册》',22.50,128)]
print('爬取到的商品信息:\n',bookinfo,'ln')
bookinfo.sort(key= lambda x:(x[1],x[1]/x[2]))
#按指定规则进行排序

print('排序后的商品信息:\n', bookinfo)

请问这个sort(key= lambda x:(x[1],x[1]/x[2]))是怎么实现排序的

  • 写回答

2条回答 默认 最新

  • 关注

    sort 方法是先把列表中的每个元素传递给 lambda函数 中的x ,
    lambda函数会返回一个有两个值的元组。
    比如('《不一样的卡梅拉(全套)》',22.50,120) 传递给 lambda函数 中的x ,
    lambda函数会返回 (22.50,0.1875) 这样的元组。

    之后用这些返回的元组来作为排序的数据进行比较,

    两个元组进行比较时是先比较两个元组的第一个值,第一个值如果相同,再比较两个元组的第二个值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 已采纳回答 9月12日
  • 创建了问题 9月10日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度