我有这样的代码:
def frequency_sorting(numbers):
return sorted(numbers, key=lambda i:numbers.count(i),reverse=True)
或者:
def frequency_sorting(numbers):
return sorted(numbers, key=numbers.count,reverse=True)
当我打电话时:
frequency_sorting([3,4,11,13,11,4,4,7,3])
都给我:
[4, 4, 4, 3, 11, 11, 3, 13, 7]
我希望:
[4, 4, 4, 3, 3, 11, 11, 13, 7]
我知道如何解决最初的想法。我只需要从理论上理解为什么我的代码不起作用。
您的代码无效,因为11和3(在您的示例中)具有相同的计数;相同的排序优先级。
排序为guaranteed to be stable。因此,如果某些项目具有相同的键值,则保留原始顺序。
您的代码无效,因为11和3(在您的示例中)具有相同的计数;相同的排序优先级。