簡體   English   中英

從 Python 字典中訪問多個數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM