📅  最后修改于: 2023-12-03 14:55:48.053000             🧑  作者: Mango
本文将介绍如何在给定预算的情况下,在两个不同的类别中选择两个项目,以确保不超过预算。我们将使用Python实现这个功能。
我们将使用一个列表来表示每个项目,其中每个项目都会包含以下属性:
我们将价格作为整数表示,以便我们可以轻松地执行数学运算。我们将使用嵌套循环来遍历所有项目,并找到总价格不超过预算的最佳组合。
首先,我们需要定义一些变量来存储项目列表和预算。我们还需要一个变量来存储最佳组合。代码如下:
budget = 50
best_combo = None
categories = [
{'name': 'Category 1', 'items': [
{'name': 'Item 1', 'price': 10},
{'name': 'Item 2', 'price': 20},
{'name': 'Item 3', 'price': 30},
]},
{'name': 'Category 2', 'items': [
{'name': 'Item 4', 'price': 15},
{'name': 'Item 5', 'price': 25},
{'name': 'Item 6', 'price': 35},
]}
]
我们有两个类别,每个类别都包含三个项目。现在,我们需要编写一些代码来找到总价格不超过预算的最佳组合。代码如下:
for i, category1 in enumerate(categories):
for j, item1 in enumerate(category1['items']):
for k, category2 in enumerate(categories):
if k == i:
continue
for l, item2 in enumerate(category2['items']):
total_price = item1['price'] + item2['price']
if total_price <= budget:
if best_combo is None or total_price > best_combo[0]:
best_combo = (total_price, item1, item2)
在这个代码块中,我们遍历了所有项目,并找到了总价格不超过预算的最佳组合。我们还检查是否已经找到了另一个更好的组合。
最后,我们打印出最佳组合。代码如下:
if best_combo is None:
print('No combination within budget.')
else:
print('Best combination within budget: ')
print(f'{best_combo[1]["name"]} from {categories[i]["name"]} '
f'and {best_combo[2]["name"]} from {categories[k]["name"]}. '
f'Total price: {best_combo[0]}')
在这个代码块中,我们检查是否找到了任何组合。如果发现组合,则打印出这些组合。
这个代码片段演示了如何使用Python在两个不同类别的项目中找到总价格不超过预算的最佳组合。我们使用了嵌套循环来遍历所有项目,并检查总价格是否在预算范围内。在找到最佳组合后,我们将其打印到控制台。