我需要创建一个程序,该程序有一个类来包装一个对象“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天。等等。我被太多的如果线卡住了,我不能让这一个工作在所有。我该如何处理这个问题?谢谢你的帮助。你知道吗
为了将它作为一个列表返回,您首先需要计算出冰箱中的最长有效期。你知道吗
返回
[0, 2, 0, 1, 1]
您可以迭代
Food
对象列表,并更新过期时键入的字典,值为过期的项数。避免冗余,例如使用collections.Counter
对象(dict的子类)在列表中保持零计数:您可以使用^{} 创建一个
dict
,其中key是食品过期日期,value是它在列表中出现的次数这里我们指定
groupby
来对列表中具有相同expiration
的所有元素进行分组(注意groupby
中的key
参数)。groupby操作的输出大致相当于(k,[v])
,其中k
是组键,[v]
是属于该特定组的值列表。你知道吗这将产生如下输出:
在这一点上,我们有
expiration
和特定过期发生在一个列表中的次数,这个列表存储在dictd
中。你知道吗接下来,我们需要创建一个列表,以便如果dict
d
中存在一个元素,则输出它,否则输出0
。我们需要在dictd
键中从0迭代到max number。为此,我们可以:这将产生所需的输出
相关问题 更多 >
编程相关推荐