首页 > 解决方案 > 查找相乘列表索引的总和

问题描述

我是 Python 新手,我似乎无法弄清楚我正在尝试做的事情的逻辑。我有 11 个清单。10 个列表包含汽车的品牌和型号,然后是每辆车的价值,然后是每个品牌/型号的汽车数量。第 11 个列表包含其他 10 个列表作为一个主列表。

我试图在 10 个列表中的每一个中找到每辆车的价值和数量的乘积,然后将 10 个产品相加得到所有汽车的总价值,然后将该值打印到屏幕上.

到目前为止,我已经能够找到我需要的索引值,将它们相乘,然后将它们单独打印到屏幕上。我添加了一个计数器变量,我试图用每个计算产品的值递增,直到循环结束,此时函数将停止并打印最终的总和值,但这仅导致最终产品打印完全到屏幕或另一个数字。

我将添加上下文示例。

我当前的代码:

def totalValue(all):
    print("Total Value")
    x = 0
    for x in range(0, len(all)):
        i = (all[x][1])
        q = (all[x][2])
        iq = i * q
        # qi = iq + iq
        t = '${:,.2f}'.format(iq)
        print(t)
    return all


list0 = []
list1 = []
list2 = []

car1 = ["Chevy Bolt EV", 37495, 2]
car2 = ["Kia Niro", 24485, 23]
car3 = ["VW e-Golf", 32790, 12]
car4 = ["Hyundai Kona", 37495, 3]
car5 = ["Honda Insight", 23725, 4]
car6 = ["Chevrolet Volt", 34395, 14]
car7 = ["Hyundai Ioniq", 23285, 5]
car8 = ["Tesla Model 3", 45200, 1]
car9 = ["Audi e-tron", 75795, 2]
car10 = ["Toyota Prius", 24405, 12]

all = (car1, car2, car3, car4, car5, car6, car7, car8, car9, car10)

print()
totalValue(all)

我想发生的事情:

Total Value
$2,326,615.00

我现在拥有的:

Total Value
$74,990.00
$563,155.00
$393,480.00
$112,485.00
$94,900.00
$481,530.00
$116,425.00
$45,200.00
$151,590.00
$292,860.00

我曾一度认为它应该可以工作:

def totalValue(all):
    print("Total Value")
    x = 0
    for x in range(0, len(all)):
        i = (all[x][1])
        q = (all[x][2])
        iq = i * q
        qi = iq + iq
    t = '${:,.2f}'.format(qi)
    print(t)
    return all

但结果是这样的:

Total Value
$585,720.00

我希望我想要的东西是有意义的。如果需要,我会澄清任何事情。我有一种感觉,我错过了一些相当明显的东西,但我不知道它是什么。

提前致谢。

标签: pythonpython-3.x

解决方案


我认为你在这里犯了一个错误:qi = iq + iq,你可以试试这个:

def totalValue(all):
    print("Total Value")
    x = 0
    qi = 0
    for x in range(0, len(all)):
        i = (all[x][1])
        q = (all[x][2])
        iq = i * q
        qi += iq
    t = '${:,.2f}'.format(qi)
    print(t)
    return all

答案是$2,326,615.00


sum在这里使用:

qi = sum(v[1] * v[2] for v in all)
print('${:,.2f}'.format(qi))

推荐阅读