我是Python的自定义排序功能的新手,但我确信可以完成以下任务.我有一个元组列表,每个元组看起来像这样:
(some_int, some_int2, string)
我想通过some_int和some_int2之间的下降差异对列表进行排序,即这两个整数之间的最大差异应该在列表的头部.可以安全地假设some_int2总是大于some_int.
谢谢你们.
解决方法:
mylist.sort(key=lambda t: t[0] - t[1])
注意我将以“错误”的顺序减去它们,这意味着差异将全部变为负数,从而将最大的数量排序到列表的开头.如果您愿意,也可以按“右”顺序减去它们并设置reverse = True:
mylist.sort(key=lambda t: t[1] - t[0], reverse=True)
这可能更清楚,虽然有点冗长.