Python 将一个单词与列表中任何单词的前3个字母匹配
我有一个csv格式的关键字列表,所有进入我数据库的条目都应该匹配。我试图编写一个python代码,根据该代码,如果输入的单词与列表中的任何单词的前3个或更多字母匹配 例如: 如果我的话是奥拉 词汇表:Python 将一个单词与列表中任何单词的前3个字母匹配,python,list,textmatching,Python,List,Textmatching,我有一个csv格式的关键字列表,所有进入我数据库的条目都应该匹配。我试图编写一个python代码,根据该代码,如果输入的单词与列表中的任何单词的前3个或更多字母匹配 例如: 如果我的话是奥拉 词汇表: orange yellow blue green purple 我想把ora这个词分配给橙色键。在python上是否有这样做的方法 另一个例子是,如果单词是orazzz,我仍然希望它拾取前3个字母与橙色匹配并将其分配给该键 如果可能的话,我想把它放到if语句中您可以用Set处
orange
yellow
blue
green
purple
我想把ora这个词分配给橙色键。在python上是否有这样做的方法
另一个例子是,如果单词是orazzz,我仍然希望它拾取前3个字母与橙色匹配并将其分配给该键
如果可能的话,我想把它放到if语句中您可以用Set处理这个问题
word=set('orange')
db_entry=set('orngesdksd')
if len(word.intersection(db_entry))>=5:
print(word.intersection(db_entry))
输出:
{'n', 'e', 'o', 'g', 'r'}
使用字典进行查找,并使用try-catch处理未找到的情况
keywords = ('orange yellow blue green purple'.split())
keys = dict((w[0:3], w) for w in keywords)
entry = 'orzazzz'
try:
key = keys[entry[0:3]]
print( 'Entered value {0} matches key {1}'.format(entry, key) )
except KeyError:
print( 'Entered value {0} does not match and keyword.'.format(entry) )
谢谢你,抱歉,我改变了问题,虽然我刚刚意识到我最初尝试的方法实际上不起作用。谢谢-我遇到了一个错误,它在'after{1}@user9645302'处给出了一个'SyntaxError:invalid syntax',这使用了print语句。对于Python3,添加括号。下次在您的问题中指定Python 3时,您将不会得到Python 2的答案。@user9645302-是的,我必须自己转换到Python 3。对此表示抱歉。我应该在括号中的什么位置添加抱歉?显示if语句并查看名为Trie的数据结构