我需要创建一个程序,该程序具有创建对象“食物”的类和包含“冰箱”的列表的列表,其中包含由“食物”类创建的这些对象.
class Food:
def __init__(self, name, expiration):
self.name = name
self.expiration = expiration
fridge = [Food("beer",4), Food("steak",1), Food("hamburger",1), Food("donut",3),]
这并不难.然后,我创建了一个函数,该函数为您提供了具有最高到期号的食物.
def exp(fridge):
expList=[]
xen = 0
for i in range(0,len(fridge)):
expList.append(fridge[xen].expiration)
xen += 1
print(expList)
sortedList = sorted(expList)
return sortedList.pop()
exp(fridge)
这也是可行的,现在我必须创建一个返回列表的函数,该列表的索引为有效期,该索引的编号为该有效期的食物数量.
输出应如下所示:[0,2,1,1]-第一个索引0表示没有食物的有效期为“ 0”.索引1表示剩余2天的食物还有1天.依此类推.我受够了,如果行,我根本无法使这一行.我应该如何处理?谢谢您的帮助.
解决方法:
为了将其作为列表返回,您首先需要弄清楚冰箱中的最大失效日期.
max_expiration = max(food.expiration for food in fridge) +1 # need +1 since 0 is also a possible expiration
exp_list = [0] * max_expiration
for food in fridge:
exp_list[food.expiration] += 1
print(exp_list)
返回[0,2,0,1,1]