为了账号安全,请及时绑定邮箱和手机立即绑定

按频率组织字典

按频率组织字典

拉风的咖菲猫 2021-03-04 09:57:11
我为最常用的单词创建字典并获得前十名。我需要对这个列表进行排序,这应该是有序的。如果没有列出我无法使用的列表,我将无法做到这一点。这是我的代码。我不在,字典无法排序,但我仍然需要帮助。most_used_words = Counter()zewDict = Counter(most_used_words).most_common(10)newDict = dict(zewDict)keys = newDict.keys()values = newDict.values()msg = ('Here is your breakdown of your most used words: \n\n'       'Word | Times Used'       '\n:--:|:--:'       '\n' + str(keys[0]).capitalize() + '|' + str(values[0]) +       '\n' + str(keys[1]).capitalize() + '|' + str(values[1]) +       '\n' + str(keys[2]).capitalize() + '|' + str(values[2]) +       '\n' + str(keys[3]).capitalize() + '|' + str(values[3]) +       '\n' + str(keys[4]).capitalize() + '|' + str(values[4]) +       '\n' + str(keys[5]).capitalize() + '|' + str(values[5]) +       '\n' + str(keys[6]).capitalize() + '|' + str(values[6]) +       '\n' + str(keys[7]).capitalize() + '|' + str(values[7]) +       '\n' + str(keys[8]).capitalize() + '|' + str(values[8]) +       '\n' + str(keys[9]).capitalize() + '|' + str(values[9]))r.send_message(user, 'Most Used Words', msg)我该怎么做,以便味精按正确使用的值从顶部最常用的单词到底部最少的单词按顺序打印单词?
查看完整描述

3 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

从文档中:most_common([n])

返回n个最常见元素的列表,以及从最常见元素到最少元素的计数。如果未指定n,则most_common()返回计数器中的所有元素。相等计数的元素是任意排序的:

>>> Counter('abracadabra').most_common(3)

[('a', 5), ('r', 2), ('b', 2)]

您的代码可以是:


from collections import Counter

c = Counter(most_used_words)

msg = "Here is your breakdown of your most used words:\n\nWords | Times Used\n:--:|:--:\n"

msg += '\n'.join('%s|%s' % (k.capitalize(), v) for (k, v) in c.most_common(10))

r.send_message(user, 'Most Used Words', msg)


查看完整回答
反对 回复 2021-03-27
?
www说

TA贡献1775条经验 获得超8个赞

一旦有了values它,就很简单:


print('Word | Times Used')

for e, t in collections.Counter(values).most_common(10):

    print("%s|%d" % (e,t))

打印类似:


Word | Times Used

e|4

d|3

a|2

c|2


查看完整回答
反对 回复 2021-03-27
  • 3 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信