我正在尝试找到一种方法来计算基于项目字典和成本,销售价格和库存三个值的总利润。当我运行代码时,它返回两个值(每个单独项目的利润(。那么我怎样才能获得总利润呢?
PS-我对编码很陌生,所以任何提示将不胜感激
shop_items= {
"banana":(23.50,26.50,100),
"egg":(13,17,12)
}
for item in shop_items:
shop_item=shop_items[item][0]
cost_item=shop_items[item][1]
shop_inventory=shop_items[item][2]
total_cost=shop_inventory*shop_item
total_sale= shop_inventory*cost_item
print(total_sale-total_cost)
一种简单的方法是使用 shop_items.items()
在单行中遍历字典。
>>> shop_items= {
... "banana":(23.50,26.50,100),
... "egg":(13,17,12)
... }
>>> sum([(i[1] - i[0]) * i[2] for k,i in shop_items.items()])
348.0
这使用列表推导将每种产品类型的总利润放在一个列表中,然后sum
将利润相加。 k
是计算不需要的字典键('banana', 'egg')
。 i
是字典中每个元素的值。
您可以继续使用 for
循环,而不是列表推导
>>> total = 0
>>> for k, i in shop_items.items():
... total += (i[1] - i[0]) * i[2]
items()
的使用在这里可能更清楚一些。循环的每次迭代都从shop_items
获取键和值。所以第一次它会获取k = 'banana'
和i = (23.50, 26.50, 100)
.然后,您可以仅使用i
加上索引来引用值。如果将语句print(k)
放在 for
循环中,您将看到它一次对 1 个元素进行操作。