私は小さなテキストベースの結果のゲームに取り組んでいますが、このリストを作成するのに問題があります。すべての(バーガーまたはホットドッグのいずれか)Food
をに入れたいと思います。私の例では、2つしか含めていませんが、それらはすべて食品の「ベース」です。Food
listOfFood
その後、私listOfFood
は何かをするために自分を繰り返します。コードを抽象化して質問しました(行が多すぎて、他の情報が関連していないため)。
class Food():
def __init__(self):
self.name = 'Food'
class HotDog(Food):
def __init__(self):
Food.__init__(self)
class Burger(Food):
def __init__(self):
Food.__init__(self)
def createFoodList(myOrders):
# A list that contain all the food (either Burger or Hotdog)
listOfFood = []
# Depend what is the type of the food, create that many food object
# and then append it to the list of food
if myOrders[0][0] == 'HotDog':
for number in myOrder[0][1]:
listOfFood.append(HotDot())
if myOrders[0][1] == 'Burger':
for number in myOrder[0][1]:
listOfFood.append(Burger())
return listOfFood
todayOrders = [['HotDog', 10], ['Burger', 5]]
print(createFoodList(todayOrders))
createFoodList
リスト内包表記または同様の方法を使用して関数を改善できるかどうか疑問に思います。私の考えはさまざまな種類のを持っていることなので、この食べ物のリストFood
を返すことができれば、リストに基づいて返します。私が今している方法は本当に複雑で長いです(これは正しい方法ではないと感じています)。todayOrders
['type of food', count]
[food, food, food.. ]
どうもありがとうございます。
編集:リスト内包に加えて、のifステートメントを置き換えるために何ができcreateFoodList
ますか?それは決定され、[[food, count], [food, count]..]
私はその食べ物を作成してリストに追加します。