python:如何检查dict中的列表

时间:2014-10-24 06:53:06

标签: python list dictionary

我想检查type中的每个项目是否都在dict typeurl中。 如果URL图像在字典中,我将保存其名称。

以下是我的代码,但我不确定这是否是一个很好的方法。
如果有更好的方法可以指导我,请指导我:

type = ['https://test/1.jpeg','https://test/3.jpeg']
typeurl = {
    u'Max'   : 'https://test/1.jpeg',
    u'MIX'  : 'https://test/2.jpeg',
    u'Special': 'https://test/dd/1.jpeg',
    u'Medium'  : 'https://test/3.jpeg',
        }
en = []
for t in type:
    for i in typeurl:
        if t in typeurl[i]:
            print i
            en.append(i)

print " | ".join(en)    #output Max | Medium

2 个答案:

答案 0 :(得分:0)

您可以使用过滤和生成器表达式来完成此操作,例如

>>> " | ".join(item for item in typeurl if typeurl[item] in types)
Max | Medium

在这里,我们遍历typeurl的键,如果键对应的值在types中,那么我们将它包含在生成器表达式的结果中。最后,我们将所有元素加入|

注意:由于我们在类型中进行查找,最好将其设置为一个集合,以便查找更快。

types = {'https://test/1.jpeg', 'https://test/3.jpeg'}

注意:名称为type的内置函数。因此,命名具有相同名称的变量将遮蔽内置函数。这就是我使用名称types

的原因

答案 1 :(得分:0)

这更紧凑。

print ' | '.join([key for key, val in typeurl.iteritems() if val in type])