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、BBQChickenを表します。これらの値は、次のリストにも保存されます。

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...

したがって、アイテムを反復処理すると、順序は保持されます(通常のdictとは異なります)。

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