从Python字典中访问多个数据



我有一个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)相乘。

如何获得另一个"长度"的相乘值?和";breadth"数据,然后用某种循环把它们加在一起?同样,在我的用例中,会有数百个这样的"长度"。和";breadth"数据条目。

可以使用列表推导式:

[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的答案工作得很好,但是如果区域的临时列表不是必需的,使用生成器表达式而不是列表推导可以避免创建列表。

相关内容

  • 没有找到相关文章

最新更新