我需要创建一个程序,其中包含一个创建对象“Food”的类和一个名为“fridge”的列表,其中包含由类“Food”创建的这些对象。
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。以此类推。我被太多的 if 行困住了,我根本无法让它工作。我应该如何处理这个?感谢您的帮助。
最佳答案
为了将其作为列表返回,您首先需要计算出冰箱中的最长保质期。
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]
关于Python - 根据索引对数字列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48501023/