繁体   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