0

对不起,如果这个问题措辞尴尬。我想做的是:

我有一个清单。

standardpizzalist = ["1. Supreme", "2. Godfather", "3. Meatlovers", "4. Capricosa", "5. BBQ Chicken", "6. Prawn Delight", "7. Basil and Pork",]

客户显示此列表,然后他们输入他们想要的选择,例如。1、3、5 代表 Supreme、Meatlovers 和 BBQ Chicken。这些值也保存在一个列表中:

orderedpizzas = [1, 3, 5]

我需要将有序披萨列表显示在屏幕上,但不是打印 1、3 和 5,而是需要它从另一个列表中读取值。例如。1.至尊,3.肉食爱好者,5.烧烤鸡。

4

4 回答 4

2

你的意思是这样的:

>>> for pizza in orderedpizzas: print standardpizzalist[pizza-1]

1. Supreme
3. Meatlovers
5. BBQ Chicken
于 2012-09-16T22:07:27.103 回答
2

我认为你最好使用字典来代替:

>>> pizza_dict
{1: 'Supreme', 2: 'Godfather', 3: 'Meatlovers', 4: 'Capricosa', 5: 'BBQ Chicken', 6: 'Prawn Delight', 7: 'Basil and Pork'}
>>> pizza_dict[1]
'Supreme'
>>> pizza_dict[3]
'Meatlovers'
>>> pizza_dict[5]
'BBQ Chicken'

然后我们可以使用列表推导来获取名称:

>>> ordered_pizzas = [1,3,5]
>>> names = [pizza_dict[num] for num in ordered_pizzas]
>>> names
['Supreme', 'Meatlovers', 'BBQ Chicken']
于 2012-09-16T22:08:47.190 回答
0
print ', '.join(standardpizzalist[x-1] for x in orderedpizzas)

会给你一个逗号分隔的订购比萨饼列表。

于 2012-09-16T22:11:59.757 回答
0

使用有序字典。

from collections import OrderedDict

pizzas = OrderedDict()
pizzas[1] = 'Supreme'
pizzas[2] = 'Godfather'
...etc...

因此,当您遍历项目时,会保留顺序(与常规字典不同):

for index, pizza in pizzas.items():
    print pizza      # First prints 'Supreme', then 'Godfather', etc...
于 2012-09-16T22:15:07.753 回答