我是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")
答案 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退出,否则它不会。