我有一个命令:
import collections
collections.OrderedDict([('key', {'keyword': {'blue', 'yellow'}}), ('key1', {'keyword': {'lock', 'door'}})])
和potential_matches列表:[红色,蓝色,一个]
我想将这些潜在匹配项排序为两个列表之一:
正确= []或不正确= []
如果潜在匹配是dict中某个键之一的关键字,则它正确无误,否则不正确.
该示例的结果应为:
正确= [蓝色],错误= [红色,一个]
这是我尝试过的:
correct = []
incorrect = []
for word in potential_matches:
for key, value in ordered_dict.items():
if word in value["keyword"] and word not in correct:
correct.append(word)
elif word not in value["keyword"] and word not in correct and word not in incorrect:
incorrect.append(word)
本质上,所有不匹配的剩余单词都应简单地转到其他列表.
虽然有效,但似乎效率不高.它必须是一个列表以保留顺序,并且列表可能会重叠.
注意:之前我曾问过类似的问题,尽管在这种情况下,情况和答案都要求使用python集,因为项是唯一的.