gpt4 book ai didi

Python:比较具有相同键的 2 个字典中的值

转载 作者:太空宇宙 更新时间:2023-11-04 07:08:38 25 4
gpt4 key购买 nike

你好,我是 python 的新手,我有一个关于字典的问题:

假设我们有一本字典:

Cars {"Audi": {"Wheels": 4, "Body": 1, "Other": 20},"Ford": {"Wheels": 2, "Body": 3, "Other":10},"BMW": {"Wheels": 5, "Body": 0.5, "Other": 30}}

和和其他词典:

Materials {"Wheels": 30, "Body": 5, "Other": 110}

我想返回我可以用我拥有的 Material 生产的汽车数量:

def production(car,Materials):
return

production("Audi",Materials)

我在这个例子中的输出应该返回数字 5,因为只有 5 个 body 部位可以使用。我想以某种方式使它成为这样: 将 Materials 的值与 cars 的值相除。然后将数字写入另一个列表,然后将最小数字整体返回。

更多例子:

production("BMW",Materials)
3.0 # because the value of key only is 110 and for 3 cars we need 90 other:
production("Ford",Materials)
1.0 # because the value of key body is 3 and for 1 car we need 3 body:

我提前感谢你所做的一切。

最佳答案

如果您想要查看在不实际影响 Materials 的内容的情况下可以创建多少辆给定的汽车,您可以像这样编写您的方法:

def number_of_units_creatable(car_key):
required_parts = Cars[car_key]
return min(Materials["Wheels"] // required_parts["Wheels"],
Materials["Body"] // required_parts["Body"],
Materials["Other"] // required_parts["Other"])

在生产中,您需要添加条件保护来检查您的 CarsMaterials 是否具有所有必需的 key 。如果您尝试获取不存在的键的值,则会出现异常。

这将允许您计算出您可以使用 Materials 中可用的资源创建的任何给定汽车的最大数量。

不过,我强烈建议您不要像这样使用嵌套的字典 - 通过创建一个 Materials 类并将其存储为您的值而不是另一个字典,这种设计将大有帮助. abarnert 在他的帖子中对此有更多介绍。

另一个注意事项,由 abarnert 提示 - 在两个单独的词典之间依赖所有共享的静态键集是一个非常糟糕的主意。如果你想 build 一辆装甲车,而现在你需要一把枪,会发生什么?要么您必须在每辆汽车的必需属性中添加 Gun: 0,否则您将遇到异常。每辆汽车都需要为现有的每辆汽车所需的每个零件输入一个条目,其中很多除了汽车 需要它。就目前而言,您的设计既非常受限又脆弱 - 一旦您尝试添加新的东西,它很可能会崩溃。

关于Python:比较具有相同键的 2 个字典中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com