python - 是否有另一种方法可以在不使用变量的情况下输入索引?
问题描述
我必须将货物存储在一个列表中,比如名称和数量,当我创建销售时,程序会询问产品名称,从列表中匹配它,找到索引号并使用索引号来查找它的数量.但我不知道如何在quantity()
不使用变量的情况下将索引号传递给。
除了变量,我也尝试使用TM.index(a)
。但到目前为止我只能发现Quantity()
只允许数字。
TM=[fish,crabs ]
Quantity=[100,20 ]
TM2=input("product name :")
if TM2.lower() in TM:
a=TM2.lower()
b = TM.index(a)
c = Quantity(b)
我希望输出是这样的:
TM2= Crabs
a= crabs
b= 1
c=Quantity(1)
c=20
但是我得到了: TypeError: 'list' object is not callable
解决方案
您遇到了麻烦,因为您使用了错误的数据结构。你想要一本字典。它是这样工作的:
product_to_quantity = {
'fish': 100,
'crabs': 20
}
which = input('product name? ').lower()
quantity = product_to_quantity[which]
print(quantity)
如果您运行它并输入fish
,它将打印100
。
注意方括号[]
而不是圆括号()
。方括号用于从字典和列表中获取项目。在您的原始代码中,您将用于Quantity[b]
获取b
列表的第 th 个元素。
推荐阅读
- python - 类错误:TypeError:Veicolo() 没有参数
- angular - 为什么 ng new app 安装了早于 12 的版本(现在是最新的)
- c# - 从 .net 5 web api 引用 .net 框架 dll 无法加载类型 System.Web.HttpContext
- c# - 如何在 LUCENE.NET 中编写连接查询?
- r - 我如何在 NTplot 中画一条线,我可以使用 ablines 吗?
- c++ - 学校作业遇到问题 c++ 时间计算器
- python - 拆分行以在 Pandas Dataframe 中创建具有相同其他行值的新行
- testing - 如何在空手道 UI 自动化框架中截取屏幕截图并将其保存为当前日期和时间
- python - 如何在 Pandas 中读取分号分隔的文件并进行规范化
- node.js - 从 Cube js 连接到 SQL Server 数据库时登录失败