如何将列表、用户输入的代码中的值分配给变量



假设我有两个价格列表A和B,每个价格对应一个代码。像 A1 是 2.50 美元,A2 是 3.50 美元,等等。

用户输入所需项目的代码。从那里,我只需要将他们销售的商品的价格分配给变量。如何将输入的代码设置为相应的成本?

items = [str(x) for x in input("What items would you like?").split()]
item1 = items[0]
item2 = items[1]
A = [2.50, 3.50, 4.50, 5.00, 6.50]
B = [2.00, 3.00, 1.50, 5.50, 3.50]

如果每个用户输入的第一个字母对应于您从中选择的列表的名称(即如您所说,"A1" =>A[0](,则必须在解决方案中使用被骂eval

但首先,让我们谈谈输入格式。以下是我的建议:

selections = map(lambda w: (w[0], int(w[1:])), input('> ').split())

这为您提供了一个列表(嗯,映射对象(对的列表:第一个元素是列表名称,第二个元素是索引。

现在我们可以从各自的列表中获取数据:

for list_name, index in selections:
print(eval(list_name)[index-1])  # -1 since input is 1-indexed

演示

最新更新