反向索引理解

2024-09-30 12:12:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个非常基本的反向索引。i、 e

函数inverseIndex应该接受逗号分隔字符串的输入,然后返回它们所属文档的索引集。 例如:inverseIndex("Hi Dude","Dude","ok Dude")==>;{"Hi":{0}, "Dude":{0,1,2},"ok",{3}}

由于我是一个Java-Javascript背景,所以我在Python中编写了这样的代码:

def inverseIndex(strlist):

    strDict = {}
    listOfStrings =  list(enumerate(strlist))

    allKeyWords = set(sum([y.split() for (x,y) in listOfStrings],[]))

    strDict = {};
    for i in allKeyWords :
        setStr = set();
        for j in listOfStrings:
            if(j[1].find(i)):
                setStr.add(j[0])
        strDict[i] = setStr;

    return strDict  

我试了一下:

^{pr2}$

这看起来效果不错。但是,我不能用理解来写。在

另外,我正在寻找一种不使用itertools的方法,如果有的话。在


Tags: 函数字符串inforokhi逗号set
1条回答
网友
1楼 · 发布于 2024-09-30 12:12:33

我想这就是你想要的:

脚本:

strings = ["Hi Dude", "Dude", "ok Dude"]
dictionary = {}
for i, item in enumerate(strings):
    for word in item.split():
        try:
            dictionary[word].append(i)
        except KeyError:
            dictionary[word] = [i]

演示:

^{pr2}$

相关问题 更多 >

    热门问题