如何从Python的字典列表中获得名为“ abc”的元素(也包含一个名为“ abc”的键)?
>>>y = [{123:'asd', 'xyz':'asff', 'zara':'afasf', 'abc':'afsff'},
{123:'gfg', 'xyz':'sgggh', 'zara':'sghh', 'abc':'sfgbg'}];
>>>a=y[0]
>>>a
{123: 'asd', 'abc': 'afsff', 'xyz': 'asff', 'zara': 'afasf'}
>>>a['abc']
'afsff'
>>>b=y[0:2]
>>>b
[{123: 'asd', 'abc': 'afsff', 'xyz': 'asff', 'zara': 'afasf'},
{123:'gfg', 'xyz':'sgggh', 'zara':'sghh', 'abc':'sfgbg'}]
>>>b['abc']
-------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-98-443ce66e30fa> in <module>()
----> 1 b['abc']
尝试TypeError时:列表索引必须是整数,而不是str
我需要类似afasf sfgbg的输出
由于b
在这种情况下变量是一个列表,因此您需要分别访问其每个元素以在字典中查找值:
>>>b[0]['abc']
'afsff'
>>>b[1]['abc']
'sfgbg'
要一次性获得每个字典的所有值,可以使用for循环:
>>>for nested_dict in b:
... nested_dict['abc']
'afsff'
'sfgbg'
此操作的简写将是列表理解,如下所示:
>>>[nested_dict['abc'] for nested_dict in b]
['afsff', 'sfgbg']
除非您只想打印这些值,否则它可能会更易于使用,因为它会自动评估一个列表,并准备对其进行操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句