我有一個看起來像這樣的 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)。
如何獲得其他“長度”和“寬度”資料的乘積值,并將它們與某種回圈相加?同樣,在我的用例中,會有數百個這樣的“長度”和“寬度”資料條目。
uj5u.com熱心網友回復:
您可以使用串列推導:
[item["length"] * item["breadth"] for item in data["dimensions"]]
這輸出:
[300, 200]
總結它們,您可以使用sum():
sum(item["length"] * item["breadth"] for item in data["dimensions"])
這輸出:
500
uj5u.com熱心網友回復:
將生成器運算式傳遞給sum效果很好。
sum(dim['length'] * dim['breadth'] for dim in data['dimensions'])
BrokenBenchmark的答案效果很好,但是如果不需要臨時區域串列,則使用生成器運算式與串列推導可以避免創建串列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/497567.html
