当我运行此代码时,它会返回每个单独项目的利润.我怎样才能让它用我目前所拥有的来计算总利润:



我正在尝试找到一种方法来计算基于项目字典和成本,销售价格和库存三个值的总利润。当我运行代码时,它返回两个值(每个单独项目的利润(。那么我怎样才能获得总利润呢?

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 个元素进行操作。

相关内容

最新更新