我有以下内容:
wordPos = {}
words = [...] #Removed for simplicity
for i, word in enumerate(words):
wordPos[i] = ({word[5]: word[4]})
最终变成:
>>> wordPos
{0: {1: 'Kontakt'},
1: {2: 'email@domain.com'},
2: {3: 'domain.com'}}
现在,我尝试在上面的字典中搜索,如果字符串/表达式存在,它应该返回值的“key”。你知道吗
例如:
string = "@domain.com"
if string in wordPos.values():
print("The string: {}, exists in the dictionary. The key for this is: {}".format(string, key))
但是,我不知道如何在字典中搜索,并返回(值的)键。你知道吗
此外,我有点不确定是否需要使用RegEx来进行实际匹配?你知道吗
我可以看出,我需要更具体地考虑我要做什么。你知道吗
因此,基本上,我是逐字阅读整个文件,并将每个单词添加到字典中(以及特定单词的行号),从而得到以下结构:
lineNumber:word
例如1:'Kontakt'
现在,我试图用这些信息来打开另一个文件并获取该文件的第一个字(在我的示例中,第一个字是@domain.com
)。你知道吗
对于第一个单词,我想检查它是否存在于我的字典中(第一次出现)。如果有,我想返回行号。所以在我的例子中,对于单词@domain.com
,应该返回的行号是2
。你知道吗
一种可能性是使用python内置的
sqlite3
模块和FTS5
全文索引:印刷品:
您可以创建如下函数。这将返回第一个匹配的行号。你知道吗
输出:
如果确实要在字典中搜索动态值,则需要遍历这些项,检查这些值是否匹配,然后返回键。没办法用一种更像Python的方式。你知道吗
如果已经有了一个单词数组,为什么不直接使用
index
方法呢?你知道吗如果字符串不存在,它将引发
ValueError
,因此可以通过以下方式避免if
:相关问题 更多 >
编程相关推荐