python - Python - 使用算术函数遍历 2 个列表
问题描述
我有 2 个 python 列表stock_level来跟踪库存数量,并需要指示创建每个产品所需的stock_level中每个项目的数量。
stock_level = [70, 20, 20 , 20]
required = [20, 20, 20, 20]
如何遍历 2 个列表以找出可以制造多少产品以及制造产品后剩余的库存,即在给定上述值的情况下,只能制造 1 个产品,stock_level最终应为 [50, 0, 0, 0]
编辑:只有在stock_level中的所有值都大于required 时才能生产产品。如果,
stock_level = [20, 20, 20, 20]
required = [70, 20, 20, 20]
由于stock_level中的第一个元素小于required中的第一个元素,因此不应生产任何产品。仅当stock_level中的值大于required中的相应元素时,才应制作产品。
stock_level = [70, 20, 20, 20]
required = [20, 20, 20, 20]
在这个例子中,应该只生产一种产品,因为在第一次运行之后,stock_level将变为 [50, 0, 0, 0] 并且在stock_level的第 2 到第 4 个元素中没有足够的库存来生产另一种产品。
我想出了这样的事情。
made = 0
for x in required:
for y in stock_level:
while True:
if x > y:
print("Insufficient")
break
else:
# stock_leve minus required
print("Product created")
made += 1
解决方案
您的代码正在嵌套循环,但您需要同时遍历这两个列表。此外,您最终会陷入无限循环。
虽然压缩数组是最好的选择,但在这里找到使用enumerate的调整版本,它应该可以帮助您理解。
没有管理库存不足的情况。
stock_level = [70, 20, 20 , 20]
required = [20, 20, 20, 20]
for i, x in enumerate(required):
y = stock_level[i]
if x > y:
print("Insufficient")
else:
# stock_leve minus required
print("Product created")
made = y - x
stock_level[i] = made
stock_level #=> [50, 0, 0, 0]
编辑后更新,如果我明白了。问题仍然是嵌套循环和使用的逻辑本身。
要了解以下实现,请深入研究文档:
这是一个可能的实现:
stock_level = [70, 40, 40, 50]
required = [20, 20, 20, 20]
tmp = zip(stock_level, required)
tmp = list(zip(stock_level, required))
makeable = 0
while True:
update_make = tmp
tmp = [ [stk - req, req] for stk, req in tmp ]
can_be_made = all([stk >= 0 for stk, _ in tmp])
if can_be_made:
makeable += 1
else:
break
print(makeable) #=> 2
print(update_make) #=> [[30, 20], [0, 20], [0, 20], [10, 20]]
actual_stock_level = [stk for stk, req in update_make]
print(actual_stock_level) #=> [30, 0, 0, 10]
推荐阅读
- javascript - 如何在材质 UI AutoComplete 和 onChange 中设置值和选项将值分配给对象?
- c# - 当我尝试在 .NET Core 中反序列化 FormFile 对象时,为什么会出现奇怪的异常?
- spring-boot - 自定义注销处理程序中的身份验证对象为空
- node.js - 我无法读取图像。它显示以下错误
- spring - JBPM 事务超时 - 已完成,多个线程正在进行中
- assembly - 装配中的对齐问题(NASM)
- neo4j - 如何将 MERGE 用于数组属性?
- java - 当我在选项卡布局中更改选项卡时,回收站视图项目正在增加
- python - 在美丽的汤网络刮痧中一无所获
- javascript - 如何调试模板字符串下的函数