【发布时间】:2019-09-17 07:08:37
【问题描述】:
我有一个清单
list1 = [4,6,2,2,2,6,4,4,4]
我想根据元素出现的频率对其进行排序。
排序后的列表应该是这样的:
[4,4,4,4,2,2,2,6,6]
我已将元素和元素频率存储在字典中。我想对这本字典进行排序。到它的价值而不是关键。这是我无法编码的部分。
我已经编写了以下代码。我有元素的频率,但我不知道如何排序。
def checkio(data):
list1 = [4,6,2,2,2,6,4,4,4]
list2 = list(dict.fromkeys(list1))
print(list2)
d = {}
list4, result = [], []
for i in list2:
d[i] = list1.count(i)
for i in list2:
list3 = [i]*d[i]
list4.append(list3)
for sublist in list4:
for item in sublist:
result.append(item)
return(result)
【问题讨论】:
-
只是
sorted(list1, key=list1.count, reverse=True) -
@1v3m 这是一个非常低效的解决方案,请参阅您发布的解决方案作为副本
-
为了高效和原生的方式,您可以查看this,因为问题已关闭,我无法发布它
标签: python python-3.x