试图使这项工作使我旋转:
我有一个命令:
OrderedDict([('key', {'keyword': {'blue', 'yellow'}), ('key1', {'keyword': {'lock', 'door'})])
我有一个列表potential_matches:[red, blue, one]
我想将这些潜在的匹配项排序为两个列表之一:
correct = []或incorrect = []
如果潜在匹配项是 dict 中某个键的关键字,则它进入correct,否则进入incorrect。
这个例子的结果应该是:
correct = [blue],incorrect = [red, one]
这是我尝试过的:
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)
列表不能有重叠,并且必须有唯一的项目,这就是为什么elif.
它很接近,但最终发生的是不正确的列表仍然包含来自正确列表的项目。
我如何才能尽可能有效地解决这个问题?
我让它听起来有点复杂,但基本上,所有不匹配的剩余单词都应该直接转到另一个列表。potential_match不过,我认为这需要完整运行列表和字典。
相关分类