小编Moh*_*din的帖子

按绝对差的频率对python列表进行排序

我有一个清单,例如

lst=[[3,7],[4,9],[8,3],[1,5],[9,4],[4,5],[3,0],[2,7],[1,9]] 
Run Code Online (Sandbox Code Playgroud)

然后想按绝对差异的频率对这个列表进行排序,如下所示:

|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, 
Run Code Online (Sandbox Code Playgroud)

输出应该是:

[[4,9],[8,3],[9,4],[2,7],[3,7],[1,5],[4,5],[3,0],[1,9]]
Run Code Online (Sandbox Code Playgroud)

我在做:

list.sort(key=self.SortByDifference,reverse=True)

def SortByDifference(self, element):
    return abs(element[0]-element[1])
Run Code Online (Sandbox Code Playgroud)

但是,这首先返回最高差。

我想按绝对差的频率排序,所以不是按最高差排序,即[5, 5, 4, 4, 4, 3, 2, 1],它会输出[4, 4, 4, 5, 5, 3, 2, 1]因为4出现的频率更高。

python sorting list frequency python-3.x

3
推荐指数
1
解决办法
67
查看次数

标签 统计

frequency ×1

list ×1

python ×1

python-3.x ×1

sorting ×1