python如何将一个List下的元素分别和另外一个字典进行对比,并输出相同的value下字典的key。

如题,如何用for循环完成两个list的对比(注:list1的元素分别和list2进行对比)
并输出相同的元素。

list1 = [2,3,6,1,5]
list2 = [9,6,2,3]

对循环嵌套一直有点不熟悉,还请多多指教 ^_^

注:更新(12:57)
其实是这样的:我有一个list 暂且叫list1吧
list1=[2,3,6,1,5]
还有一个字典d1
d1={'a':9,'b':6,'c':2,'d':3}
想要完成的事情是 返回di下value和list1中相同的key

注:更新(16:10)
list1经过 list1.sort()之后顺序变为[1,2,3,5,6]
怎样能使得d1(字典)里的key根据匹配list1之后按顺序输出
(按照1,2,3,5,6即c,d,b的顺序)

阅读 7.9k
3 个回答

用列表推导式,一行就可以:

[key for key, value in d1.items() if value in list1]

其中 items() 方法可以从字典中生成以 键-值 对为元素的迭代器。

print list(set(list1)&set(list2))

for k,v in d1.iteritems():
... if v in list1:
... print k

by@shomy

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题