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循环的情况下执行此操作?
答案 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的代码,使用任何