我嘗試「超出範圍列表索引」創建這個索裏的代碼,並顯示消息爲什麼這個源代碼是「列表索引超出範圍」
def main():
pass
data = [1,2,3,4,5]
temp = data[0]
i = 0
n = len(data)
while i<n:
data[i]=data[i+1]
i+=1
print data
if __name__ == '__main__':
main()
請幫我解決了這個源代碼
我嘗試「超出範圍列表索引」創建這個索裏的代碼,並顯示消息爲什麼這個源代碼是「列表索引超出範圍」
def main():
pass
data = [1,2,3,4,5]
temp = data[0]
i = 0
n = len(data)
while i<n:
data[i]=data[i+1]
i+=1
print data
if __name__ == '__main__':
main()
請幫我解決了這個源代碼
基本上,您可以通過將while i<n
更改爲while i<n-1
來解決此問題。
但更好的是,變更:
i = 0
n = len(data)
while i<n:
data[i]=data[i+1]
i+=1
要:
n = len(data)
for i in range(0,n-1):
data[i] = data[i+1]
data[n-1] = ... # Whatever you want to set the last entry to
如果你想要做的就是除去第一要素,然後只需使用:
temp = data.pop(0)
print data
如何使用while修復該源代碼? –
請在答案中看到第一行:「你可以通過改變'while while i
ouhh對不起兄弟,我不小心:) –
在while
循環的最後一次迭代中,語句data[i+1]
嘗試訪問列表data
的不存在索引i+1
。
我不理解,我向你請求源代碼,例如 –
如果i的值是4,那麼數據[i + 1]是指第五個索引,它沒有被定義
除了代碼之外,您還應該發佈異常回溯。它通常包含發生錯誤的確切行。 –
我的請求示例 –