将列表匹配到dict,然后循环、存储和显示

2024-04-26 12:07:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从列表S中提取一个值,并将其与字典Cost匹配,我只是需要帮助来掌握这个值的语法。它应该接受您的输入,将其检查到CostDict并输出V,然后它将检查是否可以购买5次,如果可以,它将随机购买其中的1到5次,检查是否有剩余的钱,并继续购买其中的1到5个或仅1个。但我在这方面有错误,这对我来说是相当混乱的

from collections import Counter


i = input('Taco, Burrito or Nacho: ')
moneyi = input('How much Money to Spend: ')
money = float(moneyi)

S = ["Taco", "Burrito", "Nacho"]
V = [6, 4, 2]
CostDict = {Li: Prop for (Li, Prop) in zip(S, V)}
cost = CostDict[i]
print("Costs:" + str(cost) + " per")
if (cost * 5) < money:
    purchase_ls = []
    while money >= min(cost):
        b = randint(1, 5)
        bcost = (CostDic[S] * b)
        bvalue = (ValueDic[S] * b)
        for aProp in S:
            if money < int(cost[S.index(aProp)]):
                continue
            purchase_ls.append(aProp)
            vcost = int(bcost[S.index(aProp)])
            money = money - bcost
            print("item: {} cost: {} money you have: {} ".format(aProp, vcost, money))
            if money <= 0:
                break
    print(dict(Counter(purchase_ls)))
else:
    purchase_ls = []
    while money >= min(cost):
        bcost = (CostDic[S])
        bvalue = (ValueDic[S])
        for aProp in S:
            if money < int(cost[S.index(aProp)]):
                continue
            purchase_ls.append(aProp)
            vcost = int(bcost[S.index(aProp)])
            money = money - bcost
            print("item: {} cost: {} money you have: {} ".format(aProp, vcost, money))
            if money <= 0:
                break
    print(dict(Counter(purchase_ls)))

Tags: inforindexifcounterpurchaselsint