【发布时间】:2015-03-18 09:08:06
【问题描述】:
我正在查看 Python 库中的一个示例,其中一个单词在列表中出现的总次数按其在字典中的频率计数排序:
cnt = Counter()
for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
cnt[word] += 1
cnt 的输出,其中元素按频率计数顺序列出:
Counter({'blue': 3, 'red': 2, 'green': 1})
我想创建一个不包括数字频率的集合,但保留列出元素的顺序:
{'blue', 'red', 'green'}
但是在我试图实现这一点的过程中:
set(word for word, count in cnt.most_common(3))
我收到一个集合,其中元素按字母顺序而不是频率计数:
{'blue', 'green', 'red'}
是否可以按频次排序?
【问题讨论】:
-
集合没有排序,根本。如果你确实得到了字母排序,那么你下次不能依赖它是字母排序。
标签: python python-3.x set counter