0

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

例如:

如果我的话是 ora

单词列表:

  orange
  yellow
  blue
  green
  purple

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

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

如果可能的话,我想把它放到一个 if 语句中

4

2 回答 2

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'}
于 2019-02-18T01:57:24.923 回答
0

使用字典进行查找并使用 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) )
于 2019-02-18T02:58:30.573 回答