猿问

如何在嵌套的for循环中检查字典和列表中项目的成员资格?

试图使这项工作使我旋转:

我有一个命令:


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不过,我认为这需要完整运行列表和字典。


慕森卡
浏览 117回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答