我有三个清单。我想根据第一个列表中的选项(GTIN8代码)查找其中两个的内容:
code = [12345670,12234561,12334568,12344567,12345564,12345663]
name = ['Milk (1 Pints)','Dognuts 6PK','Cookies 2PK','Apples(1KG)','Strawberries(500g)','Bananas(500g)']
price = [0.25,0.50,0.50,1.00,1.25,0.65]
Code= int(input('enter code: '))
我该怎么做?
答案 0 :(得分:2)
虽然它可以使用列表索引,但您可能应该使用dictionary代码作为密钥,并使用名称和价格的元组作为值:
items = {
12345670: ('Milk (1 Pints)', 0.25),
12234561: ('Dognuts 6PK', 0.50),
# [...]
}
我还会检查用户指定的代码是否存在:
code = int(raw_input("Please enter the GTIN8 code: "))
if code in items:
print items[code][0], items[code][1]
else:
print "This code does not exist!"
或者,使用try-except
更多pythonic:
code = int(raw_input("Please enter the GTIN8 code: "))
try:
print items[code][0], items[code][1]
except KeyError:
print "This code does not exist!"
答案 1 :(得分:1)
您正在制作三个不同数据结构的列表,比如字典可能更适合。如果您更改其中一个列表而忘记更改其他列表,则会遇到问题。
除此之外,您尝试根据 location of an item in a first list在第二个列表中查找项目。
基于这个答案你可以做这样的事情。
code = [12345670,12234561,12334568,12344567,12345564,12345663]
name = ['Milk (1 Pints)','Dognuts 6PK','Cookies 2PK','Apples(1KG)','Strawberries(500g)','Bananas(500g)']
price = [0.25,0.50,0.50,1.00,1.25,0.65]
a=int(raw_input())
i=code.index(a)
print name[i],price[i]
输出:
12345670
Milk (1 Pints) 0.25
我使用Python 2.7(raw_input而不是输入,并在print语句中省略了括号)。