Python返回适合设置参数的项目列表

问题描述

我在将返回的解决方案正确装箱到min_cals时遇到一些困难。

menu = [
    {'name':'Cheese Pizza Slice','calories': 700,'cost': 4},{'name':'House Salad','calories': 100,'cost': 8.5},{'name':'Grilled Shrimp','calories': 400,'cost': 15},{'name':'Beef Brisket','cost': 12},{'name':'Soda','cost': 1},{'name':'Cake','calories': 300,'cost': 3},]

def menu_recommendation(menu,min_cal,max_cal,budget):
    menu = [item for item in menu if item['calories'] <= max_cal and item['cost'] <= budget]
    if len(menu) == 0: return []
    return min((
        [item] + menu_recommendation(menu,min_cal - item['calories'],max_cal - item['calories'],budget - item['cost'])
        for item in menu
    ),key= 
        lambda recommendations: [budget - sum(item['cost'] for item in recommendations) and min_cal <= sum(item['calories'] for item in recommendations) <= max_cal,-sum(item['calories'] for item in recommendations)]
    )

recommendation = menu_recommendation(menu,1000,1200,15)
total_cost = sum(item['cost'] for item in recommendation)
total_cals = sum(item['calories'] for item in recommendation)
print(f'recommendation: {recommendation}')
print(f'total cost: {total_cost}')
print(f'total calories: {total_cals}')

例如,以下代码返回总热量为700(低于最小值1000)的解决方案。 推荐= menu_recommendation(菜单,1000,1200,15)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)