0
我寫了下面的代碼,以設計一個返回每個可能的子串的大小列表中的一個算法:Python的IndexError:列表賦值超出範圍
def ejercicio2(list):
vseq = []
vseq[0:len(list)] = [1] # Pone valores de la lista a 1
i = 1
while i < len(list):
aux = i - 1
while aux >= 0:
if list[i] > list[aux]: # Si el valor de la lista en i es mayor que el de aux
vseq[i] = vseq[aux] + 1
break
aux -= 1
i += 1
return vseq
起初,我以爲這應該只是工作很好,但每次我嘗試運行它,我得到了一個錯誤:
Traceback (most recent call last):
File "prac1.py", line 17, in <module>
ejercicio2([210, 816, 357, 107, 889, 635, 733, 930, 842, 542])
File "prac1.py", line 10, in ejercicio2
vseq[i] = vseq[aux] + 1
IndexError: list assignment index out of range
我知道這很可能是一個容易解決的問題,但我似乎還沒有找到一個解決方案,任何幫助將是讚賞。謝謝!
'VSEQ [0 :len(list)] = [1]'將'vseq'擴展爲'[1]'。它不會創建與'list'具有相同長度的'1'元素的列表。切片分配*不重複元素*。 –
是否要從字符串列表中返回最長字符串的長度? – user1190882
我想要返回整個列表中的每個初始列表值的子字符串長度 –