下面我有一个列表,并用下面的值记录。dict具有与列表值关联的键
我想要的是使用字典中列表的值搜索列表中的字符串,并使用每个匹配捕获相应的键值,然后使用上面列出的每个匹配的键值创建一个新列表
list = ['man', 'men', 'boy', 'buoy', 'cat','caat']
dict={'man':['man', 'men', 'mun'], 'boy':['boy','buoy','bay'], 'cat':['cat','caat','cut']}
上述情况的预期输出为: Outputlist=[“男人”,“男人”,“男孩”,“男孩”,“猫”,“猫”]
当我尝试相同的方法时,我只得到一个匹配项,如下所示
lis = ['man', 'men', 'boy', 'buoy', 'cat','caat']
dic={'man':['man', 'men', 'mun'], 'boy':['boy','buoy','bay'], 'cat':['cat','caat','cut']}
for key,value in dic.items():
if value in lis:
output.append(key)
print(output)
我认为你做得不对。首先,您需要遍历lis,然后找到相应的密钥:
正如其他人所提到的,您可以使用列表理解直接执行此操作:
您可以使用
nested list comprehension
。请注意,不应使用list
和dict
作为变量:首先要注意的是,要实现相同长度的输入和输出列表,应该在列表上循环,而不是在字典上循环
另一种方法是构造反向映射。这将使事情逐渐加快:
然后,简单地说:
相关问题 更多 >
编程相关推荐