查找乘法列表索引的总和

时间:2019-04-12 03:10:08

标签: python python-3.x

我是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

我希望我的想法有意义。如果需要的话,我会澄清。我有一种感觉,我很想念一些明显的东西,但是我无法分辨是什么。

谢谢。

2 个答案:

答案 0 :(得分:2)

我认为您在这里犯了一个错误: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))

答案 1 :(得分:2)

遍历项目,每次将每辆汽车的(值X数量)加到总和上。然后,一旦循环结束并计算出总和,就将其打印出来。 代码:

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

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)

totalValue(all)

这有效。这段代码印有:

总价值

2,326,615.00美元