2017-06-20 60 views
0

這是我的例子:如何使用字典中的已存在元素的值在列表中創建元素?

print (stock_info) 
>>> [{'symbol': 'AAPL', 'name': 'Apple Inc.', 'price': 145.16, 'quantity': 20}, {'symbol': 'AMZN', 'name': 'Amazon.com, Inc.', 'price': 998.61, 'quantity': 20}, {'symbol': 'FB', 'name': 'Facebook, Inc.', 'price': 152.96, 'quantity': 30}, {'symbol': 'GOOG', 'name': 'Alphabet Inc.', 'price': 957.01, 'quantity': 20}] 

我有「價格」與價值觀「數量」字段。

現在我想創建一個名爲場「總」 =價格*數量

如何創建一個新的領域(「總」:值)的基礎上2場,已經存在的價值(價值=價格*數量)?

因此,我希望看到:

>>> [{'symbol': 'AAPL', 'name': 'Apple Inc.', 'price': 145.16, 'quantity': 20, 'total' : 2903.2}, {'symbol': 'AMZN', 'name': 'Amazon.com, Inc.', 'price': 998.61, 'quantity': 20, 'total' : 19972.2}, {'symbol': 'FB', 'name': 'Facebook, Inc.', 'price': 152.96, 'quantity': 30, 'total' : 4588.8}, {'symbol': 'GOOG', 'name': 'Alphabet Inc.', 'price': 957.01, 'quantity': 20, 'total' : 19140.2}] 

所以每個字典(?快譯通,是的)用一個新的領域的「合計」和它的價值延伸。

如何實現這個想法?

任何幫助是不勝感激;)

謝謝!

回答

2

通過你的數據只是環,並添加新的關鍵是你的字典:

for stock_item in stock_info: 
    stock_item["total"] = stock_item["price"] * stock_item["quantity"] 

編輯 - 測試與您的數據:

stock_info = [{'symbol': 'AAPL', 'name': 'Apple Inc.', 'price': 145.16, 'quantity': 20}, 
       {'symbol': 'AMZN', 'name': 'Amazon.com, Inc.', 'price': 998.61, 'quantity':20}, 
       {'symbol': 'FB', 'name': 'Facebook, Inc.', 'price': 152.96, 'quantity': 30}, 
       {'symbol': 'GOOG', 'name': 'Alphabet Inc.', 'price': 957.01, 'quantity': 20}] 

for stock_item in stock_info: 
    stock_item["total"] = stock_item["price"] * stock_item["quantity"] 

print(stock_info) 

產量:

[{'name': 'Apple Inc.', 'price': 145.16, 'symbol': 'AAPL', 'total': 2903.2, 'quantity': 20}, 
{'name': 'Amazon.com, Inc.', 'price': 998.61, 'symbol': 'AMZN', 'total': 19972.2, 'quantity': 20}, 
{'name': 'Facebook, Inc.', 'price': 152.96, 'symbol': 'FB', 'total': 4588.8, 'quantity': 30}, 
{'name': 'Alphabet Inc.', 'price': 957.01, 'symbol': 'GOOG', 'total': 19140.2, 'quantity': 20}] 
+0

莫非你請更精確?這樣,只有最後一個stock_item被存儲。 '''total'':19049.102,'quantity':20,'name':'Alphabet Inc.','symbol':'GOOG','price':952.4551} stock_item的輸出 – wingedRuslan

+0

@wingedRuslan - 檢查它錯誤然後(我猜你正在打印'stock_item'而不是'stock_info'列表)。 'stock_item'只是一個臨時引用,真正的變化發生在'stock_info'列表的嵌套'dict'項中。檢查上面的例子。 – zwer

+0

太好了,非常感謝。我知道了。 – wingedRuslan

相關問題