我可以将循环结果保存到列表(Python)中吗?

时间:2019-07-26 19:03:08

标签: python list loops

我创建了一个循环,该循环应该以0.00400000为增量从0.00000000到可变数进行计数。循环工作正常(不是从零开始),但是我无法将循环保存到列表中。我想将此循环(我的时间循环)与另一个我拥有的列表(当前)相对应,以显示电流如何随时间变化。

主要问题是我无法将时间保存到列表中,并且该列表的长度必须与当前列表的长度相同。

我尝试制作循环,但是不知道如何将迭代保存到列表中以供日后绘制。

import numpy as np

N, v1, v2 = np.loadtxt(r'C:\Users\laure\OneDrive\Documents\DropData\Drop4Data(Complete)1MMod.txt', unpack = True)



#Calculate Current from Voltage Drop
V= [v1[i] -v2[i] for i in range(len(v1))]

R= 1000000

I= [V[i] / R for i in range (len(V))]

Loop= len(I)*0.004
T=0
while T <= Loop:
   T+= 0.00400000

如果我只打印T,则可以正常工作并将值打印在不同的行中。

当我尝试在图形中使用T作为轴值时,它告诉我“ x和y必须具有相同的长度”。当我尝试查看T多长时间时,它说“类型为'float'的对象没有len()”

2 个答案:

答案 0 :(得分:0)

简单来说就是每次增加变量时都有一个数组来存储变量。

import numpy as np

N, v1, v2 = np.loadtxt(r'C:\Users\laure\OneDrive\Documents\DropData\Drop4Data(Complete)1MMod.txt', unpack = True)



#Calculate Current from Voltage Drop
V= [v1[i] -v2[i] for i in range(len(v1))]

R= 1000000

I= [V[i] / R for i in range (len(V))]

Loop= len(I)*0.004
T=0
x_steps = []
while T <= Loop:
   x_steps.append(T) # append the current number to the array
   T+= 0.00400000

不过,更好的方法是进行np.linspace调用:

np.linspace(0,len(I)*.004, 0.004)

答案 1 :(得分:0)

您可以创建两个列表,一个存储索引,一个存储T值。然后,您可以使用两个列表来绘制值。

import numpy as np

N, v1, v2 = np.loadtxt(r'C:\Users\laure\OneDrive\Documents\DropData\Drop4Data(Complete)1MMod.txt', unpack = True)



#Calculate Current from Voltage Drop
V= [v1[i] -v2[i] for i in range(len(v1))]

R= 1000000

I= [V[i] / R for i in range (len(V))]

Loop= len(I)*0.004
T=0
i = 0
T_list = []
axis_list = []
while T <= Loop:
   T+= 0.00400000
   T_list.append(T)
   axis_list.append(i) 
   i = i + 1