python判断值是否在字典中_python-检查列表中的项目是否存在于字典中

将list1设为集合并使用dictionary views,并使用列表推导:

set1 = set(list1)

newlist = [key for key, value in dict_a.iteritems() if value.viewkeys() & set1]

在Python 3中,请改用value.keys()和dict_a.items.

这将测试字典键和您要查找的键集之间是否存在相交(有效操作).

演示:

>>> dict_a = {'one': {'bird':2, 'tree':6, 'sky':1, 'TOTAL':9},

... 'two': {'apple':3, 'sky':1, 'TOTAL':4},

... 'three': {'tree':6, 'TOTAL':6},

... 'four': {'nada':1, 'TOTAL':1},

... 'five': {'orange':2, 'bird':3, 'TOTAL':5}

... }

>>> set1 = {'bird','tree'}

>>> [key for key, value in dict_a.iteritems() if value.viewkeys() & set1]

['three', 'five', 'one']

请注意,字典顺序是任意的(取决于所使用的键以及字典的插入和删除历史记录),因此输出列表顺序可能会有所不同.

从技术上讲,您也可以直接使用列表(value.viewkeys()和list1起作用),但是将其设置为集合可以更清楚地说明您的意图.


版权声明:本文为weixin_39633774原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。