[英]Accessing multiple data from Python dictionary
我有一個看起來像這樣的 Python 字典:
data = {
"shape" : "rectangle",
"dimensions" : [
{
"length" : 15,
"breadth": 20,
},
{
"length" : 20,
"breadth": 10,
}
]
}
在我的用例中,將有超過一百個這樣的矩形及其尺寸。
我寫這個是為了找到這個區域:
length = data['dimensions'][0]['length']
breadth = data['dimensions'][0]['breadth']
area = length * breadth
print(area)
運行上面的代碼會給我 300 的結果,因為它將字典中的前兩個長度和寬度數據相乘 (15 * 20)。
如何獲得其他“長度”和“寬度”數據的乘積值,並將它們與某種循環相加? 同樣,在我的用例中,會有數百個這樣的“長度”和“寬度”數據條目。
您可以使用列表推導:
[item["length"] * item["breadth"] for item in data["dimensions"]]
這輸出:
[300, 200]
總結它們,你可以使用sum()
:
sum(item["length"] * item["breadth"] for item in data["dimensions"])
這輸出:
500
將生成器表達式傳遞給sum
效果很好。
sum(dim['length'] * dim['breadth'] for dim in data['dimensions'])
BrokenBenchmark 的答案效果很好,但是如果不需要臨時區域列表,則使用生成器表達式與列表推導可以避免創建列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.