如何在python中比较list/array/dict中的对应元素

假设您有两个列表(或任何类型的分组,哪个并不重要)包含表示牛奶、鸡蛋和面粉的变量。例如:

有(牛奶、鸡蛋、面粉)

需要(牛奶、鸡蛋、面粉)

您如何确定每个元素是否 >=、== 或 <= 在另一个列表中的对应项,以便您可以返回一些指示,说明每种成分是否足够制作众所周知的蛋糕,或者是否有足够多的吗?

我真的不想为了 3 个比较而写《战争与和平》。任何帮助表示赞赏。


小怪兽爱吃肉
浏览 110回答 4
4回答

手掌心

你可以使用字典。例如:have = {"milk": 2, "eggs": 3, "flour": 0.5}need = {"milk": 1, "eggs": 5, "flour": 2.5}ingredients = {i:"Yes" if have[i] >= need[i] else "No" for i in have.keys()}输出:print(ingredients){'milk': 'Yes', 'eggs': 'No', 'flour': 'No'}如果你想要一个函数来告诉你用你拥有的原料可以做多少蛋糕,你可以使用以下代码:def how_many(need, have):&nbsp; &nbsp; results = {i:have[i]//need[i] for i in have.keys()}&nbsp; &nbsp; return min(results.values())

慕桂英546537

假设输入如下milk=200eggs=10flour=1000milk_reqd=100eggs_reqd=5flour_reqd=2000have=[milk, eggs, flour]need=[milk_reqd, eggs_reqd, flour_reqd]解决方案import numpy as nphave=np.array(have)need=np.array(need)现在您可以执行所有操作,例如need>have或者need<=have或者need-have获取可以制作的蛋糕数量n_cakes=int(min(have/need))

莫回无

如果你需要比较的数量列表,你可以使用单行列表理解(只能比较==,>,<否则如果你使用>=和<=和==它们将是重叠操作) -milk_have = 10eggs_have = 20flour_have = 30milk_need = 10eggs_need = 25flour_need = 3have = [milk_have, eggs_have, flour_have]need = [milk_need, eggs_need, flour_need]['==' if i[0]==i[1] else '>' if i[0]>i[1] else '<' for i in zip(have, need)]['==', '<', '>']

ibeautiful

have = ('milk', 'eggs', 'flour',"k")need = ('milk', 'eggs', 'flour',"l")incredients = {}for i in range(len(have)):&nbsp; &nbsp;count = 0&nbsp;&nbsp; &nbsp;if have[i] == need[i]:&nbsp; &nbsp; &nbsp; count +=1&nbsp; &nbsp;incredients[have[i]] = count输出:{'eggs': 1, 'flour': 1, 'k': 0, 'milk': 1}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python