【发布时间】:2021-04-16 02:23:53
【问题描述】:
我有一个类似的列表,
lst=[[3,7],[4,9],[8,3],[1,5],[9,4],[4,5],[3,0],[2,7],[1,9]]
然后想按绝对差异的频率对这个列表进行排序,如下所示:
|3-7|=4, |4-9|=5, |8-3|=5, |1-5|=4, |9-4|=5, |4-5|=1, |3-0|=3, |2-7|=5, |1-9|=8,
输出应该是:
[[4,9],[8,3],[9,4],[2,7],[3,7],[1,5],[4,5],[3,0],[1,9]]
我在做:
list.sort(key=self.SortByDifference,reverse=True)
def SortByDifference(self, element):
return abs(element[0]-element[1])
但是,这首先返回最高的差异。
我想按绝对差的频率排序,所以不是按最高差排序,即[5, 5, 4, 4, 4, 3, 2, 1],而是输出[4, 4, 4, 5, 5, 3, 2, 1],因为4出现的频率更高。
【问题讨论】:
-
删除
reverse=True可能会有所帮助。 -
@wuerfelfreak 不,他不想按数字排序,他想按数字的频率排序。
-
是的,你是对的。过度阅读。谢谢
标签: python python-3.x list sorting frequency