首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用python对帖子数量进行排序

使用python对帖子数量进行排序
EN

Stack Overflow用户
提问于 2015-01-20 06:06:47
回答 2查看 115关注 0票数 0

我正在写一个函数,它基本上接受两个参数作为参数,一个是包含单词的列表,另一个是列表中每个单词的索引。我的排序函数没有给出我想要的输出

下面是我的代码:

代码语言:javascript
运行
复制
from collections import defaultdict
import re
def sort_by_postings(words,index):
    for key, value in sorted(index.iteritems(), key=lambda (k,v): (v,k)):
        print "%s" % (key)

所需输出:

代码语言:javascript
运行
复制
>>> sort_by_postings(['a', 'b', 'c'], {'a': [0, 1], 'b': [1, 2, 3], 'c': [4]})
['c', 'a', 'b']

这里首先列出了'c',因为它只出现在一个文档中,即[4],而'a'出现在两个文档中,即docID [0,1],而'b'出现在docID [1,2,3]的三个文档中

因此,基本上我希望根据这些单词的出现次数从出现次数最少到no.of出现次数最多的顺序对列表进行排序。

你们能建议对我的函数进行任何修改吗?或者你们能帮我创建一个新的函数来提供所需的输出吗?

EN

Stack Overflow用户

发布于 2015-01-20 06:20:00

为什么不使用sorted和一个键来根据字典中元素的相应值的长度对列表进行排序?

代码语言:javascript
运行
复制
>>> d={'a': [0, 1], 'b': [1, 2, 3], 'c': [4]}
>>> l=['a', 'b', 'c']
>>> sorted(l,key=lambda x : len(d[x]))
['c', 'a', 'b']
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28034325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档