如何在Python中的List字典列表中找到一个值?

时间:2015-11-02 01:40:51

标签: python list dictionary

我是Python的新手。 我必须找到/比较一个字符串值与列表中的列表,该列表存在于List的字典列表中。我编写了下面的代码,虽然它工作正常,但我们可以用更好的方式编写。

abc = [{'GetDriverPackInfo_OUTPUT': {'OSList': [u'Linux', u'Windows', u'Xen', u'VMware'], 'ReturnValue': [u'0'], 'Version': [u'15.07.04']}}]

os_name = "Linux"

for k in abc:                   #['GetDriverPackInfo_OUTPUT']['OSList']:
    if os_name in k['GetDriverPackInfo_OUTPUT']['OSList']: #== os_name:
        print ("os_name found")
    else:
        print ("os_name not found")

2 个答案:

答案 0 :(得分:1)

我不确定这对你有用。只有当abc总是有一个'GetDriverPackInfo_OUTPUT'项时,它才会起作用。

temp = abc [0] ['GetDriverPackInfo_OUTPUT'] ['OSList']

如果os中的os_name:

  print "found"

否则:

  print "not found" 

答案 1 :(得分:0)

In [1]: osname in [j for j in [k['GetDriverPackInfo_OUTPUT']['OSList'] for k in abc]][0]
Out[1]: True

如果它返回True,则osname退出,否则它不会。