我得到一个字典(好吧,实际上,twitter.api.TwitterDictResponse
)基本上看起来像这样
{
'a_list' :
[
{'key': 'value1', 'foo': 'bar1'},
{'key': 'value2', 'foo': 'bar2', 'sup': 'dope'}
{'key': 'value3'}
]
}
我有兴趣在列表中提取value1
,value2
和value3
。
我知道我可以这样做:
output_list = []
for i in my_dict["a_list"]:
output_list.append(i["key"])
但是必须有一种更有效的方法吗?
像my_dict["a_list"][0:3]["key"]
之类的东西。
答案 0 :(得分:1)
不是JSON ,它是 Python词典。
您可以使用以下列表理解来提升性能(
)output_list = [ x['key'] for x in my_dict['a_list'] ]
你不能更有效地做这件事,因为你必须循环遍历元素,以获得这些元素的列表。
另一种方法是 lazily ,例如使用map(..)
:
output_list = map(lambda x : x['key'],my_dict['a_list'])
但是不生成列表,而是生成器。最终它需要相同的时间(如果你需要所有的元素)。但是生成器构造得很快(因为映射被推迟)。