Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将一个单词与列表中任何单词的前3个字母匹配_Python_List_Textmatching - Fatal编程技术网

Python 将一个单词与列表中任何单词的前3个字母匹配

Python 将一个单词与列表中任何单词的前3个字母匹配,python,list,textmatching,Python,List,Textmatching,我有一个csv格式的关键字列表,所有进入我数据库的条目都应该匹配。我试图编写一个python代码,根据该代码,如果输入的单词与列表中的任何单词的前3个或更多字母匹配 例如: 如果我的话是奥拉 词汇表: orange yellow blue green purple 我想把ora这个词分配给橙色键。在python上是否有这样做的方法 另一个例子是,如果单词是orazzz,我仍然希望它拾取前3个字母与橙色匹配并将其分配给该键 如果可能的话,我想把它放到if语句中您可以用Set处

我有一个csv格式的关键字列表,所有进入我数据库的条目都应该匹配。我试图编写一个python代码,根据该代码,如果输入的单词与列表中的任何单词的前3个或更多字母匹配

例如:

如果我的话是奥拉

词汇表:

  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的数据结构