gpt4 book ai didi

Python 排序频率

转载 作者:太空宇宙 更新时间:2023-11-03 15:58:28 24 4
gpt4 key购买 nike

我刚刚在学校开始使用 python,我有一个问题我已经尝试弄清楚一段时间了

问题是按频率对列表进行排序,并且该列表还包含字符串对于前给定的函数调用

SortByFrequency(['pie', 6, 'pie', 9, 6, 7, 9, 9]

它应该返回

[9, 9, 9, 'pie', 'pie', 6, 6, 7]

我如何使用 python 找到解决方案,谢谢我已经尝试过的代码尝试使用字典并以某种方式打印元素

my_Dict ={}
for i in mylist:
if i not in my_dict:
and count the occurrences

最佳答案

如果这不是某种不允许使用python模块的学校作业,请不要重新发明轮子,可以使用collections模块如下完成

import collections
def SortByFrequency(lst):
return list(collections.Counter(lst).elements())

SortByFrequency(['pie', 6, 'pie', 9, 6, 7, 9, 9])
# this return [9, 9, 9, 'pie', 'pie', 6, 6, 7]

我自己尝试用字典解决这个问题

def SortByFrequency(mylist):
my_dict = {}
for i in mylist:
my_dict[i] = my_dict.get(i,0) + 1
return sorted(sorted(mylist,key=str), key=my_dict.get, reverse=True)

SortByFrequency(['pie', 6, 'pie', 9, 6, 7, 9, 9])
# but this does not guarantee the order when we have multiple values with same frequency
# this will return [9, 9, 9, 6, 6, 'pie', 'pie', 7]

关于Python 排序频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40556930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com