首页 > 解决方案 > 是否有另一种方法可以在不使用变量的情况下输入索引?

问题描述

我必须将货物存储在一个列表中,比如名称和数量,当我创建销售时,程序会询问产品名称,从列表中匹配它,找到索引号并使用索引号来查找它的数量.但我不知道如何在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

标签: python

解决方案


您遇到了麻烦,因为您使用了错误的数据结构。你想要一本字典。它是这样工作的:

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 个元素。


推荐阅读