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

时间:2019-02-18 01:42:20

标签: python list textmatching

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

例如:

如果我的单词是ora

单词列表:

  orange
  yellow
  blue
  green
  purple

我想将单词ora分配给橙色键。有什么办法可以在python上做到这一点?

另一个例子是,如果单词是orazzz,我仍然希望它能使前三个字母与橙色匹配并将其分配给该键。

如果可能,我想将其放入if语句中

2 个答案:

答案 0 :(得分:1)

您可以使用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'}

答案 1 :(得分:0)

使用字典进行查找和尝试捕获以处理未发现的情况。

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) )