检查字符串是否是列表中字典项的值

时间:2015-03-19 10:49:57

标签: python dictionary

我想检查字符串是否匹配任何d["vin"]字典列表:

mylist = [{"vin":"A123"}, {"vin":"B234"}];
if "A123" in ???:
    # continue...

这怎么可能?

4 个答案:

答案 0 :(得分:4)

使用any() functiongenerator expression

if any(d['vin'] == 'A123' for d in mylist):

这假设d中的所有mylist都拥有该密钥;如果不是这种情况,请使用dict.get()

if any(d.get('vin') == 'A123' for d in mylist):

在任何一种情况下,any()都会短路;它只会根据需要测试尽可能多的d来查找匹配项。对于您的示例,只会测试第一个字典。

答案 1 :(得分:1)

使用anygenerator expression

if any(d["vin"] == "A123" for d in mylist):
    # ... etc.

答案 2 :(得分:0)

mylist = [{"vin":"A123"}, {"vin":"B234"}];

for lists in mylist:
   if "vin" in lists:
        # continue...do something

答案 3 :(得分:-1)

您可以将anyin

一起使用
if any('A123' in d.values() for d in mylist):