微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查每个相似键的每个值是否满足 2 字典中每个键的条件 - PYTHON

如何解决检查每个相似键的每个值是否满足 2 字典中每个键的条件 - PYTHON

我在 2 个字典中有这些数据。

dict1 = {"A":2,"B": 2,"C":2}
dict2 = {"A":2,"B":100,"C":100)

我检查每个键的值是否 dict1 中的值大于 dict2 中的值。 示例:

if dict1["A"]>=dict2["A"]:
   print("There are enough A parts")
if dict1["B"]>=dict2["B"]:
   print("There are enough B parts")

有没有办法让我无需执行上述操作即可检查 2 个字典之间的所有值? 以下是更好地理解的方法

dict1={}
dict2 = {"A":2,"C":100}
productID= "ABBB" #productID
quantityInput = 100
quantityTomake = productID*quantityInput #results in ABBB x100 times

 *** PROGRAM RUNS through each letter and update how many A and Bs are there and updates dict1

我被困在这里。条件是,如果我有足够的部分,即 A、B、C、D,如上例所示, 我有足够的“A”来制作 2 个“ABBB”。

如果我们有每个键的 dict2 值如下:

dict2 = {"A":100,"B":2,"C":100}

我没有足够的 B 来制作 1 个“ABBB”,因为我们需要 3 个“B”来制作 1 个“ABBB”。

非常感谢您的帮助。对 python 很陌生。

谢谢!

解决方法

如果您知道 dict2dict1 具有相同的键,您可以循环遍历 dict1 的键并比较每个值:

In [20]: dict1 = {"A":2,"B": 2,"C":2,"D":4}
    ...: dict2 = {"A":2,"B":100,"C":100,"D":2}

In [21]: for k,v in dict1.items():
    ...:     if v >= dict2[k]:
    ...:         print(f"There are enough {k} parts")
    ...:
There are enough A parts
There are enough D parts

如果您实际上是在尝试处理表格数据,您也可以考虑使用 pandas,因为它可以使很多此类比较和更新变得相当容易:

In [22]: import pandas as pd

In [23]: df = pd.DataFrame([dict1,dict2]).T

In [24]: df
Out[24]:
   0    1
A  2    2
B  2  100
C  2  100
D  4    2

In [25]: df.index[df[0].ge(df[1])]
Out[25]: Index(['A','D'],dtype='object')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。