gpt4 book ai didi

python - 打破 Python 排序中的联系

转载 作者:太空宇宙 更新时间:2023-11-03 12:16:06 25 4
gpt4 key购买 nike

我有一个元组列表,每个元组包含两个整数。我需要根据每个元组中整数的差异对列表进行排序(以相反的顺序),但与较大的第一个整数打破联系。

示例

对于 [(5, 6), (4, 1), (6, 7)],我们应该得到 [(4, 1), (6, 7), (5, 6)].

我的方式

我已经通过制作一个字典解决了这个问题,其中包含作为的差异和作为的元组。但是整个事情有点笨拙。

什么是更好的方法?

最佳答案

使用key 函数sorted() 并返回一个元组;值将按字典顺序排序:

sorted(yourlst, key=lambda t: (abs(t[0] - t[1])), t[0]), reverse=True)

我在这里使用 abs() 来计算差值,无论两个整数中哪个较大。

对于您的示例输入,键生成 (1, 5)(3, 4)(1, 6);以相反的顺序将 (1, 6) (对于 (6, 7) 元组)放在 (1, 5) 之前(对应于(5, 6)).

演示:

>>> yourlst = [(5, 6), (4, 1), (6, 7)]
>>> sorted(yourlst, key=lambda t: (abs(t[0] - t[1]), t[0]), reverse=True)
[(4, 1), (6, 7), (5, 6)]

关于python - 打破 Python 排序中的联系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24579202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com