【问题标题】:How to sort a list of tuples by 3 keys? [closed]如何按 3 个键对元组列表进行排序? [关闭]
【发布时间】:2020-09-27 01:46:06
【问题描述】:

我问这个问题是因为这里给出的答案都没有:Sort a list by multiple attributes? 对我有用。

我已经为在线市场构建了一个网络爬虫。我得到了汽车的价格、生产年份和位置(卖方居住的城市)。我想按价格(更低的价格 = 更好)、生产年份(更新 = 更好)以及从卖家到买家的距离(我将用 geopy 计算,更短的距离 = 更好)对列表进行排序,所以我可以为买家找到最好的汽车。我尝试使用 sorted() 但我没有设法让它工作。

这是我的列表的样子:

元组的格式如下:(价格、生产年份、距离)

cars_info = [(10000, 2013, 40), (13000, 2012, 50), (20000, 2016, 100)]

【问题讨论】:

  • 您链接的问题也回答了您的问题。什么不适合你?
  • 在此处粘贴您的代码

标签: python python-3.x list sorting tuples


【解决方案1】:

带有自定义key 的内置sorted 将轻松满足您的需求,例如

sorted(cars_info, key=lambda x:(x[0], -x[1], x[2]))

鉴于sorted 以升序和从左到右对数字元素进行排序这一事实,操作符号可让您控制要排序的内容(升序与降序),并且顺序可让您控制最重要的特征(即首先考虑哪些)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 2020-08-02
    相关资源
    最近更新 更多