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

初学者没看懂,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日

悬赏问题

  • ¥200 如何使用postGis实现最短领规划?
  • ¥15 pyinstaller打包错误
  • ¥20 cesm的气溶胶排放文件
  • ¥15 逐月累计,月份不连续,补齐月份
  • ¥15 应用简单的Python代码完成一个学生成绩管理系统
  • ¥15 用matlab求微分方程初值问题
  • ¥15 vscode下编写第三方库opencv与pcl代码时没有代码提示
  • ¥15 能够跑通不报错,如何解决?(标签-matlab)
  • ¥15 MOS在RDS较大,频率高时开关波形异常
  • ¥15 SCENIC分析报错求解答