gpt4 book ai didi

Python - 根据索引对数字列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:25 25 4
gpt4 key购买 nike

我需要创建一个程序,其中包含一个创建对象“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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com