Python 2.7 迭代arraylist,计算python中连续值的差值
我试图迭代arraylist,在每个循环中保存连续值的最高/最低差值Python 2.7 迭代arraylist,计算python中连续值的差值,python-2.7,arraylist,Python 2.7,Arraylist,我试图迭代arraylist,在每个循环中保存连续值的最高/最低差值 e1=([ 0 , 0, 0, 0, 15, 28, 28, 28, 27, 27, 35, 44, 43, 43, 42, 39]) Hodiffmax = 0 Hodiffmin = 0 for k in e1: diff1= e1[k+1] - e1[k] if diff1 > Hodiffmax: Hodiffmax=diff1 if diff1 < Hodiffmin:
e1=([ 0 , 0, 0, 0, 15, 28, 28, 28, 27, 27, 35, 44, 43, 43, 42, 39])
Hodiffmax = 0
Hodiffmin = 0
for k in e1:
diff1= e1[k+1] - e1[k]
if diff1 > Hodiffmax:
Hodiffmax=diff1
if diff1 < Hodiffmin:
Hodiffmin=diff1
问题是我得到了一个索引越界错误。如何使用[k+1]遍历arraylist?我现在尝试了很多东西,但是我没有变得更聪明。谢谢你的帮助
编辑既不起作用也不起作用的内容:
for k in e1:
for w in k:
diff1= e1[w+1] - e1[w]
if diff1 > Hodiffmax:
Hodiffmax=diff1
if diff1 < Hodiffmin:
Hodiffmin=diff1
错误:对于k中的w-TypeError:'numpy.int32'对象不可编辑请使用:
使用:
使用[y-x代表x,y在zipe1中,e1[1:]可以获得连续的差异,而不必担心索引:
>>> e1 = [ 0 , 0, 0, 0, 15, 28, 28, 28, 27, 27, 35, 44, 43, 43, 42, 39]
>>> l = [y - x for x, y in zip(e1, e1[1:])]
>>> Hodiffmax, Hodiffmin = max(l), min(l)
>>> Hodiffmax, Hodiffmin
15, -3
使用[y-x代表x,y在zipe1中,e1[1:]可以获得连续的差异,而不必担心索引:
>>> e1 = [ 0 , 0, 0, 0, 15, 28, 28, 28, 27, 27, 35, 44, 43, 43, 42, 39]
>>> l = [y - x for x, y in zip(e1, e1[1:])]
>>> Hodiffmax, Hodiffmin = max(l), min(l)
>>> Hodiffmax, Hodiffmin
15, -3
这里的问题是您正在迭代列表中的元素。通过做 对于e1中的k: k将得到e1上元素的值。k=0,k=0,k=0,k=0,k=15,k=28等等。相反,您希望在列表的范围内进行迭代
for k in range(len(e1)):
k将获得e1上的索引值。k=0,k=1,k=2,k=3,k=4,k=5等等。我想你在找这样的东西:
e1 = [0, 0, 0, 0, 15, 28, 28, 28, 27, 27, 35, 44, 43, 43, 42, 39]
for k in range(len(e1)):
print k
if k > 0:
diff1 = e1[k] - e1[k-1]
if diff1 > Hodiffmax:
Hodiffmax=diff1
if diff1 < Hodiffmin:
Hodiffmin=diff1
print 'Hodiffmax ' + str(Hodiffmax)
print 'Hodiffmin ' + str(Hodiffmin)
这里的问题是您正在迭代列表中的元素。通过做 对于e1中的k: k将得到e1上元素的值。k=0,k=0,k=0,k=0,k=15,k=28等等。相反,您希望在列表的范围内进行迭代
for k in range(len(e1)):
k将获得e1上的索引值。k=0,k=1,k=2,k=3,k=4,k=5等等。我想你在找这样的东西:
e1 = [0, 0, 0, 0, 15, 28, 28, 28, 27, 27, 35, 44, 43, 43, 42, 39]
for k in range(len(e1)):
print k
if k > 0:
diff1 = e1[k] - e1[k-1]
if diff1 > Hodiffmax:
Hodiffmax=diff1
if diff1 < Hodiffmin:
Hodiffmin=diff1
print 'Hodiffmax ' + str(Hodiffmax)
print 'Hodiffmin ' + str(Hodiffmin)
你的意思是在循环内,例如:对于k中的w:restcode…因为这两者都不起作用,导致不可测试的错误阅读本教程,你将得到解决方案。你的意思是在循环内,例如:对于k中的w:restcode…因为这两者都不起作用,导致不可测试的错误阅读本教程,你将得到解决方案。。