我遇到了麻烦。这是我的代码,我想检查字典中是否存在特定值。这是我的代码。我认为逻辑是对的,但语法不正确。请帮我。谢谢。
a = [
{'amount':200, 'currency':'php'},
{'amount':100, 'currency':'usd'}
]
result1 = 200 in a
result2 = 'php' in a
result = result1 and result2
print result
我希望得到'True'的结果
答案 0 :(得分:2)
该行
result1 = 200 in a
查找值为200
的列表元素。
但是你的列表元素是字典。所以你的期望是不可能实现的。
因此,假设您的目标是检查特定值是否包含在列表a
的任何元素(即字典)中,您应该写
result1 = any(200 in el.values() for el in a)
result2 = any('php' in el.values() for el in a)
result = result1 and result2
print result
产生
True
答案 1 :(得分:1)
使用iteritems迭代通过字典获取其键和值
a = [
{'amount':200, 'currency':'php'},
{'amount':100, 'currency':'usd'}
]
for lst in a:
for k,v in lst.iteritems():
if 200 == v:
res1 = 'True'
if 'php' == v:
res2 = 'True'
print res1 and res
答案 2 :(得分:0)
您可以执行类似
的操作a = [
{'amount':200, 'currency':'php'},
{'amount':100, 'currency':'usd'}
]
for i in a:
if 200 in i.values():
result1=True
if "php" in i.values():
result2=True
result = result1 and result2
print result