我的任务是按列表中包含的数字的频率对列表进行排序。如果几个数字具有相同的频率 - 它们应该根据它们的自然顺序进行排序。
例如:[5, 2, 4, 1, 1, 1, 3]==>[1, 1, 1, 2, 3, 4, 5]
在解决问题的过程中,我写了一个函数如下:
lista = [3, 4, 11, 13, 11, 4, 4, 7, 3]
def func1(numbers: list):
numbers.sort(key=lambda x:(-numbers.count(x), x))
return numbers
result = func1(lista)
print(result)
但结果是[3, 3, 4, 4, 4, 7, 11, 11, 13],然后我写了一个非常相似的函数
lista = [3, 4, 11, 13, 11, 4, 4, 7, 3]
def func2(numbers: list):
return sorted(numbers,key=lambda x:(-numbers.count(x), x))
result = func2(lista)
print(result)
结果是[4, 4, 4, 3, 3, 11, 11, 7, 13],这就是我想要的我的问题是:list.sort 函数和 sorted 函数有什么不同
这只是我整个作业的一小部分,请忽略我算法的时间复杂度。