检查词典字典中的值

时间:2016-11-11 08:52:59

标签: python dictionary

foob = {1:{'url':'www.abc.com', 'name':'abc'}, 2:{'url':'www.def.com', 'name':'def'}}
item = {'url':'www.abc.com', 'name':'wrong name'}

if item in foob.values():
    print 'yes'
else:
    print 'no'

我想更改item in list.values(),以便它只比较url值而不是整个词典。 是否可以在不重复整个字典的情况下做到这一点,有一种简单的方法可以在不编写单独的for循环的情况下执行此操作?

2 个答案:

答案 0 :(得分:2)

使用any和生成器表达式:

if any(i['url'] == item['url'] for i in dict.values()):
    print 'yes'
else:
    print 'no'

答案 1 :(得分:0)

我认为这段代码可行,但我认为有一种方法可以避免某种迭代。

dict = {1:{'url':'www.abc.com', 'name':'abc'}, 2:{'url':'www.def.com', 'name':'def'}}
item = {'url':'www.abc.com', 'name':'wrong name'}

if item['url'] in [i['url'] for i in dict.values()]:
    print 'yes'
else:
    print 'no'

我同意deceze的代码,使用任何