Python 通过数组列出超出范围的索引
我不知道怎么了。我想我可能已经超过了数组限制Python 通过数组列出超出范围的索引,python,python-2.7,Python,Python 2.7,我不知道怎么了。我想我可能已经超过了数组限制 def lcs(arr): if len(arr) == 0: # arr of length 0 return sumarr = [] counter = 0 sum = 0 for i in arr: if arr[i] > 0: sum = sum + arr[i] if arr[i] < 0:
def lcs(arr):
if len(arr) == 0: # arr of length 0
return
sumarr = []
counter = 0
sum = 0
for i in arr:
if arr[i] > 0:
sum = sum + arr[i]
if arr[i] < 0:
sumarr[counter] = sum
counter += 1
print max(sumarr)
def lcs(arr):
如果len(arr)=0:#长度为0的arr
返回
sumarr=[]
计数器=0
总和=0
对于arr中的i:
如果arr[i]>0:
总和=总和+arr[i]
如果arr[i]<0:
sumarr[计数器]=总和
计数器+=1
打印最大值(sumarr)
我得到的错误是:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 8, in lcs
IndexError: list index out of range
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“”,第8行,在lcs中
索引器:列表索引超出范围
#
我对代码做了一些修改
def lcs(arr):
if len(arr) == 0: # arr of length 0
return
sumarr = []
counter = 0
sum = 0
for i in arr:
if i > 0:
sum = sum + i
if i < 0:
sumarr[counter] = sum
counter += 1
print max(sumarr)
def lcs(arr):
如果len(arr)=0:#长度为0的arr
返回
sumarr=[]
计数器=0
总和=0
对于arr中的i:
如果i>0:
sum=sum+i
如果i<0:
sumarr[计数器]=总和
计数器+=1
打印最大值(sumarr)
然而,我得到了这个错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 13, in lcs
ValueError: max() arg is an empty sequence
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“”,第13行,在lcs中
ValueError:max()arg是一个空序列
我以为我一直在更新我的sumarr[]。为什么错误告诉我我正在将一个空列表传递到max()?当您在arr中为I执行
操作时,I
获取数组的元素(一次一个),而不是它们的索引。在示例中,您希望将每个arr[i]
替换为i
使用枚举指向数组的右侧位置:
def lcs(arr):
if len(arr) == 0: # arr of length 0
return
sumarr = []
counter = 0
sum = 0
for count, i in enumerate(arr):
if arr[count] > 0:
sum = sum + arr[i]
if arr[count] < 0:
sumarr[counter] = sum
counter += 1
print max(sumarr)
def lcs(arr):
如果len(arr)=0:#长度为0的arr
返回
sumarr=[]
计数器=0
总和=0
对于计数,枚举中的i(arr):
如果arr[计数]>0:
总和=总和+arr[i]
如果arr[计数]<0:
sumarr[计数器]=总和
计数器+=1
打印最大值(sumarr)
如果未使用计数
变量,使用枚举
有什么意义?(应该有i
而不是arr[count]
)