【发布时间】:2019-07-26 11:11:38
【问题描述】:
我正在尝试将列表中的项目映射到字典中的键。如果它存在于dict2 的值中,则该项目映射到dict2 的键
list = ['abc','c-abc','ith','xyz']
dict2 = {'abc':['abc','ABC','c-abc'], 'xyz':['xyz']}
map=[]
for item in list:
print(type(dict2.items()))
for key,value in dict2.items():
if item in value:
map.append(key)
得到的输出:
['abc', 'abc', 'xyz']
预期输出:
['abc', 'abc', 'ith', 'xyz']
ith 不会出现在dict2 的任何值中。因此,它不会保存在map 中。但是,我想知道当item 没有出现在dict2 的任何值中时如何保存它。
当找不到地图时,我不确定如何在list 中保留该项目。
有什么建议吗?
【问题讨论】:
-
为什么
abc会返回两次?为什么需要ith? -
你为什么期待
ith?我在dict2 = {'abc':['abc','ABC','c-abc'], 'xyz':['xyz']}值中没有找到它 -
您的算法工作正常,您能否更清楚地了解您要达到的目标?
-
脚本为每个
list项目运行第二个循环,并检查list项目是否包含在dict2s 项目的值中。如果是这种情况,则包含来自list的值的dict2项目的 key 将被添加到地图中。就像这样 list_item -> dict2_item_keyabc -> abc | c-abc -> abc | ith -> None | xyz-> xyz。 ith 不包含在dict2s 项中,因此未添加。 -
@BerkayÖz 是的,我已经更新了我的帖子。我想存储
item,如果它没有出现在dict2的任何值中
标签: python list dictionary