我正在尝试从数据库中添加对象的总和,但是到目前为止,我没有找到成功
test = [{'shares': 5}, {'shares': 1}]
# print sum of the two shares (5+1=6)
我尝试使用test['shares']
进行打印,但是会导致错误:
列表索引必须是整数或切片,而不是str
我尝试过sum(test.value())
,但会产生错误
“列表”对象没有属性“值”
然后sum(test)
创建:
+不支持的操作数类型:“ int”和“ dict”
似乎对象包装在列表中,但是我不知道如何解包?
答案 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)