python - Python - for 循环有问题,并将列作为列表
问题描述
我最近因为工作才开始学习 python,我在代码中遇到了 for 循环。我希望我的程序输出每小时产生的氨量的值,这取决于 Excel 中的单元格(附在下面),并且我需要将“NH3 消耗的 H2”和“实际存储的”列作为 Python 中的列表顺序前进。但是,当我运行这段代码时,进程一直在运行并且不会停止,这让我意识到我在某个地方搞砸了,但我不知道在哪里。
hourly_H2_prod = [hourly_elec*1000/avg_pwr_use for hourly_elec in elec_list]
H2_sum = sum(hourly_H2_prod)
avg_hourly_H2_consumed = avg_hourly_NH3_prod*3/17.31
init_H2_stored = H2_sum/365*Storage_days #highlighted cell in Excel screenshot
actual_H2_stored = [init_H2_stored]
hourly_H2_consumed = []
for i in range(1,len(hourly_H2_prod)):
for j in range(len(actual_H2_stored)):
hourly_H2_consumed.append(max(min(avg_hourly_H2_consumed,actual_H2_stored[j]),0))
actual_H2_stored.append(max(min(init_H2_stored,actual_H2_stored[j]+hourly_H2_prod[i]-hourly_H2_consumed[j]),0))
我已经设法获得“每小时 H2 生产”列的列表格式
我想当我需要使用 excel 公式中所示的前一个变量进行迭代时,我搞砸了。我也希望我已经充分解释了一切,感谢您的帮助!
解决方案
我想通了,@VonWooDSoN 你是对的,嵌套循环确实把一切都搞砸了。我完全删除了这条线,而是把它放进去,它工作得很好,现在我得到了我需要的列表形式的值,所以谢谢你的提示!
for i in range(1,len(hourly_H2_prod)):
hourly_H2_consumed.append(max(min(avg_hourly_H2_consumed,actual_H2_stored[i-1]),0))
actual_H2_stored.append(max(min(init_H2_stored,actual_H2_stored[i-1]+hourly_H2_prod[i]-hourly_H2_consumed[i-1]),0))
推荐阅读
- javascript - 根据嵌套值过滤嵌套数组
- laravel - Laravel 验证 + 测试,依赖另一个字段的字段
- matlab - Matlab函数不会绘图
- python - 如何正确使用带有应用功能的熊猫 groupby 来解决副作用?(第一组申请两次)
- next.js - 使用 NextJS,我只想显示来自服务器的结果
- javascript - testcafe for api test - 如何使用自定义 requesthook 验证响应代码
- ios - 如何仅针对较新的 iOS 设备?
- java - 保留新 javaw 进程的信息,以便稍后使用 cmd 关闭它
- r - 使用元包中的森林函数绘制并排森林图
- reactjs - Firebase - 电话号码验证