提问者:小点点

遍历字典列表以求和具有相同键的值


请友好一点; 我是个新手。

我试图对同一列表中的多个字典中的值求和,所有这些值都具有相同的键(record_amount)。 这看起来应该相当简单,但是我不能迭代浮点数。 我怎么才能绕过这个?

examplelist = []

def append_data():
 examplelist.append({
  'record_number':len(examplelist)+1,
  'record_amount':float(input('Amount: '))
  })

append_data()

for data in examplelist:
 print(sum(data['record_amount']))

这导致“float”对象不可迭代。 我尝试将初始输入更改为字符串输入,而不是浮点输入,但这似乎没有帮助。

我也尝试过类似的方法:

def net_income_func():
  cheers = examplelist[0:]['record_amount']
  for data in cheers:
    print(data)

如果有人能给我指出正确的方向,那就太好了。 谢谢!


共1个答案

匿名用户

您的程序需要稍作调整才能有意义:

def append_data(examplelist):
 examplelist.append({
  'record_number':len(examplelist)+1,
  'record_amount':float(input('Amount: '))
  })

examplelist = []
append_data(examplelist)

print(sum([data['record_amount'] for data in examplelist]))

我已将append_data()更改为将examplelist作为参数,而不是全局参数。

您可以使用列表理解来提取值,sum()将对所有这些值进行求和。