如何使每个值一次进入一个for循环?

2024-06-16 15:54:54 发布

您现在位置:Python中文网/ 问答频道 /正文

T_list = []
Temp_k = np.linspace(298, 398, 10)
#print (Temp_k)
current = np.linspace(0, 1.4, 5)
ppH2O = np.linspace(-2, -1, 5)

H2_pressure = []
H2O_pp = ppH2O
for i in (Temp_k):
    print(i, 'i')
    for j in (H2O_pp):
        print(j, 'j')
        for k in (current):
            print (k, 'k')
            partial_H2 = 5*np.exp((1.653 * k)/i) - 1/j
H2_pressure.append(partial_H2)
#print (H2_pressure)

我想制作一个数组列表,该数组为我提供 5*np.exp((1.653*k)/i)-1/j

在每个温度k、H2O、pp、电流下

例如,当温度k、H2O和电流处于其初始值时, 第二个值的值。。。。直到达到最终值

有人能帮我吗


Tags: infornp数组h2current温度partial
2条回答

您的问题是将append放在每个循环之外。您应该将计算结果附加到最内部的循环中,即您计算它的位置。否则,当循环终止时,无法访问以前计算的值

T_list = []
Temp_k = np.linspace(298, 398, 10)
#print (Temp_k)
current = np.linspace(0, 1.4, 5)
ppH2O = np.linspace(-2, -1, 5)

H2_pressure = []
H2O_pp = ppH2O
for i in (Temp_k):
    print(i, 'i')
    for j in (H2O_pp):
        print(j, 'j')
        for k in (current):
            print (k, 'k')
            partial_H2 = 5*np.exp((1.653 * k)/i) - 1/j
            H2_pressure.append(partial_H2)

这个怎么样

import numpy as np

temp_k = np.linspace(298, 398, 10)
pp_h2o = np.linspace(-2, -1, 5)
currents = np.linspace(0, 1.4, 5)

h2_pressures = []
for temp in temp_k:
    for pp in pp_h2o:
        for current in currents:
            h2_pressure = 5 * np.exp((1.653 * current) / temp)  - 1 / pp
            h2_pressures.append(h2_pressure)
            print(f'temp: {temp:0.1f}, pp: {pp:.2f}, current: {current:.3f}, h2_pressure: {h2_pressure:.4f}')

#print(h2_pressures)

变化:

  • 选择更多符合Python约定的逻辑变量名
  • 删除了for循环中列表周围的()
  • 将h2_压力添加到内部for循环中
  • 格式化打印输出

相关问题 更多 >