从元组列表构建dict列表



我有以下元组

[('A', 38, 132.0, 132.0), ('V', 22, 223.0, 223.0)]

我想循环浏览它,并创建一个dict,看起来像这样:

[{'symbol': 'A', 'sumshares': 38, 'avgprice': 132.0, 'purchase_p': 132}, {'symbol': 'V', 'sumshares': 22, 'avgprice': 223.0, 'purchase_p': 223.0}]

尝试了几天来找到正确的方法来做到这一点,但没有成功:(

谢谢你的帮助。

您可以使用列表理解。这之所以有效,是因为列表理解首先对原始列表中的每个元组进行解构,然后将解构的变量(a、b、c和d(插入到字典中。

original = [('A', 1, 2, 3), ('X', 3, 4, 5)]
dictionary = [{'a': a, 'b': b, 'c': c, 'd': d} for a, b, c, d in original]

通过循环,您可以使用析构函数来获取值,并在列表中添加字典:

newlist = []
for row in original:
a, b, c, d = row

newlist.append({'a': a, 'b': b, 'c': c, 'd': d})
print(newlist)
lst = [('A', 38, 132.0, 132.0), ('V', 22, 223.0, 223.0)]
keys = ('symbol', 'sumshares', 'avgprice','purchase_p')
dlist = []
for l in lst:
dlist.append(dict(zip(keys, l)))
print(dlist)

输出

[{'symbol':‘A’,‘sumshares’:38,‘avgprice’:132.0,‘purchase_p’:132.0},{'ssymbol':"V",‘sumshares’:22,‘avgfrice’:223.0,‘purchase_p":223.0}]

data=[('A', 38, 132.0, 132.0), ('V', 22, 223.0, 223.0)]
keys=['symbol','sumshares','avgprice','purchase_p']
mydict=[dict(zip(keys,dat)) for dat in data ]
print(mydict)

输出
[{'symbol':"A","sumshares":38,"avgprice":132.0,"purchase_p':132.0},{'ssymbol':'V',"sumshares":22,"avgprice":223.0,"purchase_p":223.0}]

最新更新