如何计算列表中的多个对象值

时间:2019-04-18 19:18:38

标签: python

我正在尝试从数据库中添加对象的总和,但是到目前为止,我没有找到成功

test = [{'shares': 5}, {'shares': 1}]
# print sum of the two shares (5+1=6)

我尝试使用test['shares']进行打印,但是会导致错误:

  

列表索引必须是整数或切片,而不是str

我尝试过sum(test.value()),但会产生错误

  

“列表”对象没有属性“值”

然后sum(test)创建:

  

+不支持的操作数类型:“ int”和“ dict”

似乎对象包装在列表中,但是我不知道如何解包?

5 个答案:

答案 0 :(得分:3)

一种不错的方法是

"react": "^16.8.2",
"react-admin": "^2.8.5",
"react-dom": "^16.8.2",
"react-scripts": "^2.1.8",

为什么这样做?

给出一个字典sum(x['shares'] for x in test) ,然后获取值d = {'shares': 7},请调用7

您要为列表d['shares']中的每个字典执行此操作,因此您要为test中的每个x['shares']查看x

在Python中,函数test可以接受称为“生成器表达式”的东西,这就是我们在这里所做的。

答案 1 :(得分:0)

test是一个列表。您要按索引访问其元素:

print(test[0]['shares'] + test[1]['shares'])

或者,如果该列表中有很多对象:

print(sum( x['shares'] for x in test ))

s = 0;
for elm in test:
    s += elm['shares']
print(s)

答案 2 :(得分:0)

您正在将数据放入list中,并将其用作字典,可以使结构更好。

{'shares': [5, 1]}

答案 3 :(得分:0)

您有一个词典列表。您必须从列表中选择字典的数量,然后使用键访问这样的值:

test[0]['shares']

下次您可以在互联网上轻松找到它...

答案 4 :(得分:0)

使用以下代码,即使它们不同,您也可以汇总所有对象值

test = [{'shares': 5}, {'shares': 1}]

total = 0
for each in test:
  for i in each:
    total += each[i]

print(total)