錯誤訊息的請教

看板Python作者 (mserway)時間14年前 (2009/10/21 16:51), 編輯推噓0(009)
留言9則, 3人參與, 最新討論串1/1
大家好,我(新手)這裡有些新問題,請前輩幫忙指導一下,謝謝。 Traceback (most recent call last): File "region.py", line 740, in <module> main() File "region.py", line 733, in main experiment_normal() File "region.py", line 677, in experiment_normal result2 = region(w) File "region.py", line 309, in region buckets = baton.trigger_region_balance(correct_node) File "/home/mikehong/mike1/baton.py", line 1090, in trigger_region_balance if left_start_node['LeftRoutingTable'][current_round] != None: IndexError: list index out of range 我對這段訊息的解釋如下: 在 File "/home/mikehong/mike1/baton.py" 出現錯誤! if left_start_node['LeftRoutingTable'][current_round] != None: 錯誤的訊息為IndexError: list index out of range 可是程式碼我跑過很多個實驗(大部分成功),只有特定data時才會出現這個錯誤訊息, 關於這個錯誤的意思是 left_start_node['LeftRoutingTable'] 太大嗎? 請版上得高手們講解一下,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.189.34

10/21 17:07, , 1F
current_round比l['LRT']大. 超過了list的大小.
10/21 17:07, 1F

10/21 17:09, , 2F
並不是list太大. 而是你的index value大於list.
10/21 17:09, 2F

10/21 17:39, , 3F
不好意思我還是有點不懂,我的current_round為個位整數
10/21 17:39, 3F

10/21 17:42, , 4F
是說數值大於「LRT」的數值嗎?
10/21 17:42, 4F

10/21 22:11, , 5F
gmp3fs的意思是 current_round >= len(..['LRT']) 吧
10/21 22:11, 5F

10/22 02:08, , 6F
current_round >= len(l['LRT'])-1 # list index從0開始算
10/22 02:08, 6F

10/22 02:10, , 7F
len([1,2]);[1,2][0];[1,2][1];[1,2][2] # 最後一個 [2]
10/22 02:10, 7F

10/22 02:11, , 8F
要取的index超過了[1,2]這個list. 所以out of range.
10/22 02:11, 8F

10/22 13:15, , 9F
喔喔!我了解了! 謝謝gm大和ia大的詳細解釋!謝謝
10/22 13:15, 9F
文章代碼(AID): #1AtikWMw (Python)