为了账号安全,请及时绑定邮箱和手机立即绑定

对字典中的总值求和的函数

对字典中的总值求和的函数

有只小跳蛙 2021-09-01 10:26:01
我有一个包含多个条目的 dict 值。   inventory = {847502: ['APPLES 1LB', 2, 50], 847283: ['OLIVE OIL', 1, 100], 839529: ['TOMATOS 1LB', 4, 25],                  483946: ['MILK 1/2G', 2, 50], 493402: ['FLOUR 5LB', 2, 50], 485034: ['BELL PEPPERS 1LB', 3, 50]}我想创建一个函数来获取价值项目的总数,即。sum((2*50)+ (1*100) etc...) 我想我快到了,但这似乎只添加了第一个值....def total_and_number(dict):    for values in dict.values():        #print(values[1]*values[2])        total =0        total += (values[1]* values[2])        return(total)total_and_number(inventory)
查看完整描述

3 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

Return 和 total 行错位。这将返回 650。


inventory = {847502: ['APPLES 1LB', 2, 50],

             847283: ['OLIVE OIL', 1, 100], 839529: ['TOMATOS 1LB', 4, 25], 

             483946: ['MILK 1/2G', 2, 50], 493402: ['FLOUR 5LB', 2, 50],

             485034: ['BELL PEPPERS 1LB', 3, 50]

}


def total_and_number(dict):

    total = 0

    for values in dict.values():

        total += values[1]*values[2]

    return(total)


total_and_number(inventory)


查看完整回答
反对 回复 2021-09-01
?
守候你守候我

TA贡献1802条经验 获得超10个赞

看起来每个值都是一个列表(尽管它可能应该是一个元组):

itemname, qty, eachprice

所以它应该很容易迭代并直接求和:

sum(qty*eachprice for _, qty, eachprice in inventory.values())


查看完整回答
反对 回复 2021-09-01
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

用:


def total_and_number(d):

    tot = 0

    for k, v in d.items():

        tot += v[1]*v[2]

    return tot


total_and_number(inventory)


查看完整回答
反对 回复 2021-09-01
  • 3 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信