[英]extract data from a list of dictionaries python 3
我正在使用python3。 如果我有以下字典列表:
[{'stock_symbol': 'ALT', 'shares_total': 1, 'Price': 12.29},
{'stock_symbol': 'NFLX', 'shares_total': 5, 'Price': 534.5}]
我想提取 stock_symbol、shares_total 和 price 中的每一个。 并将这些值中的每一个分别存储在说符号、股票、价格中。 我怎样才能做到这一点?
使用列表理解:
mydata = [{'stock_symbol': 'ALT', 'shares_total': 1, 'Price': 12.29}, {'stock_symbol': 'NFLX', 'shares_total': 5, 'Price': 534.5}]
stock_symbol = [i["stock_symbol"] for i in mydata]
shares_total = [i["shares_total"] for i in mydata]
price = [i["Price"] for i in mydata]
与@Stephen Mylabathula 的解决方案类似,您可以创建包含所有这些列表的字典,如下所示。 然后,您可以使用例如 result['price'] 调用这些列表中的任何一个:
result={stock_symbol : [i["stock_symbol"] for i in mydata],
shares_total : [i["shares_total"] for i in mydata],
price : [i["Price"] for i in mydata]}
简单的方法是只循环一次数组
mydata = [{'stock_symbol': 'ALT', 'shares_total': 1, 'Price': 12.29}, {'stock_symbol': 'NFLX', 'shares_total': 5, 'Price': 534.5}]
stock_symbol=[]
shares_total=[]
price=[]
# start loop
for data in mydata:
stock_symbol.append(data['stock_symbol'])
shares_total.append(data['shares_total'])
price.append(data['Price'])
有很多方法可以做到这一点..其中一些
inp = [
{'stock_symbol': 'ALT', 'shares_total': 1, 'Price': 12.29},
{'stock_symbol': 'NFLX', 'shares_total': 5, 'Price': 534.5}
]
如果代码高尔夫不是目标,那么最简单的方法是将输入循环一次。
stock_symbols = []
shares_total = []
prices = []
for entry in inp:
stock_symbols.append(entry['stock_symbol'])
shares_total.append(entry['shares_total'])
shares_total.append(entry['Price'])
相同的方法,但使用字典,所以如果字典的键发生变化,它会很容易使用
from collections import defaultdict
op_dict = defaultdict(list)
fields = ['stock_symbol', 'shares_total', 'Price']
for inp_ in inp:
for field in fields:
op_dict[field].append(dict_[field])
op_dict['stock_symbol']
op_dict['shares_total']
op_dict['Price']
使用 zip
op_list = list(zip(*(_.values() for _ in inp)))
op_list[0] #stock_symbol
op_list[1] #shares_total
op_list[2] #Price
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.