如何获取列表项的索引并将其分配给变量

时间:2016-05-22 16:36:27

标签: python

我有三个清单。我想根据第一个列表中的选项(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: '))

我该怎么做?

2 个答案:

答案 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语句中省略了括号)。