Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中比较list/array/dict中的对应元素_Python_Python 3.x_List_Comparison - Fatal编程技术网

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

如何在python中比较list/array/dict中的对应元素,python,python-3.x,list,comparison,Python,Python 3.x,List,Comparison,假设您有两个列表(或任何类型的分组,哪一个并不重要),其中包含表示牛奶、鸡蛋和面粉的变量。例如: have = {"milk": 2, "eggs": 3, "flour": 0.5} need = {"milk": 1, "eggs": 5, "flour": 2.5} ingredients = {i:"Yes" if have[i] >= nee

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

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()}
吃(牛奶、鸡蛋、面粉)

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


如何确定每个元素>=、==或是否可以使用字典。例如:

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):
    results = {i:have[i]//need[i] for i in have.keys()}
    return min(results.values())

如果需要比较的数量列表,可以使用单行列表理解(只能比较==,>,<否则,如果使用>=和i[1]else'将输入假设为以下内容,则它们将是重叠操作

milk=200
eggs=10
flour=1000

milk_reqd=100
eggs_reqd=5
flour_reqd=2000

have=[milk, eggs, flour]
need=[milk_reqd, eggs_reqd, flour_reqd]
解决方案

import numpy as np
have=np.array(have)
need=np.array(need)
现在您可以执行以下所有操作:

need>have

获取可以制作的蛋糕数量

n_cakes=int(min(have/need))

输出:
{'eggs':1,'floor':1,'k':0,'milk':1}

假设,
牛奶
鸡蛋
面粉
类对象
,通常应该有一个属性指定数量(
牛奶.quantity
鸡蛋.quantity
)。由于这些值是数值,您可以使用算术运算符。请通过示例提供有关您的查询的更多信息(如果可行)变量的要点是存储数量:鸡蛋=2表示有2个鸡蛋,牛奶=3表示有3杯牛奶。因此,如果我需要2个鸡蛋、1杯牛奶和1杯面粉,但我有4个鸡蛋、5杯牛奶和3杯面粉,我希望它能返回2个蛋糕。这是一个相当模糊的问题,因为你没有指定数据布局或方法,所以很难确定在代码中设置一个具体的答案。也就是说,你可以循环索引或标签来比较每一对,不管你需要什么,并将结果存储在另一个“分组”中,不需要Tolstoy!谢谢你,Anant。我已经在这方面停留太久了,甚至没有考虑使用NumPy(我在这方面还是很新的),你是一个救生员。
need<=have
need-have
n_cakes=int(min(have/need))
have = ('milk', 'eggs', 'flour',"k")
need = ('milk', 'eggs', 'flour',"l")
incredients = {}
for i in range(len(have)):
   count = 0 
   if have[i] == need[i]:
      count +=1
   incredients[have[i]] = count