python - 将列表匹配到 dict 然后循环、存储和显示
问题描述
我试图从列表中提取一个值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)))
解决方案
推荐阅读
- ios - 在 viewDidLoad 中加载数据是否太晚而无法在 UIViewController 中显示?
- reactjs - React.Children 不检测 child(ren) 何时为空
- excel - excel-VBA中简单代码的“用户定义类型未定义”错误
- java - 如何在 Spring Boot 中将 Java 实体映射到多个 MongoDB 集合并为两个集合使用不同的索引?
- javascript - React Calculator:如何防止多个小数?
- javascript - 使用 react-test-renderer 测试异步 componentDidMount()
- python - Confluent Python Avro Producer:数据 {'..'} 不是模式的示例
- terraform - Terraform 不理解 kubernetes 的故障
- regex - 正则表达式草莓 perl (windows) 单行修复多个换行 (0a) 字符
- ios - Apple 开发人员 APN 角色