2014-09-24 106 views
-3

我有一個6000+元素列表(稱爲area_num)來處理。我的代碼看起來像:Python列表索引超出範圍,6000個元素列表

#---------------------------------------------------------------------------- 
    def getBusInfo_AreaName(area_num): 
     area_name=[] 
     for i in range(0,TotalBusNumber) : 
      area_name[0][i]= AreaNameList[0][area_num[0][i]] 

    return area_name 
    #---------------------------------------------------------------------------- 
    area_name=getBusInfo_AreaName(area_num) 

而且AreaNameList將爲[[A,B,C,d,E,F]]僅包括6個元素。如果我知道區號,我需要區域名稱。每個對象都有區號和區域名稱作爲其屬性。

信息:

TotalBusNumber = 6000 +

area_num [0]有6000+的元素

請給我一些想法,爲什麼Pyhton總是抱怨 '列表索引超出範圍......'

謝謝大家!

+1

不要只是轉儲一小段代碼(特別是帶有IndentationError的無效代碼)和錯誤的描述,給我們實際的代碼來重現問題和實際的異常回溯。請參閱幫助中的[MCVE](http://stackoverflow.com/help/mcve)以獲取指導。這使得人們無需猜測就可以更輕鬆地調試您的問題。 – abarnert 2014-09-24 19:25:45

+1

「area_name [0]」中有多少個元素,「TotalBusNumber」中的值是多少? – tttthomasssss 2014-09-24 19:25:55

+2

此外,我不知道這是否是你的問題,但[[A,B,C,D,E,F]]不包括6個元素,它包括1個元素是一個包含6個元素的列表)。 – abarnert 2014-09-24 19:26:54

回答

1

Python不會僅僅因爲引用它們而創建列表項。 area_name[0][i]不存在,因此引發異常。我不確定這段代碼在做什麼,但它接近你想要做的就是複製一個子列表。

def getBusInfo_AreaName(area_num): 
    area_name=[] 
    area_name.append(area_num[0][:]) 
    return area_name 

這可能會減少多一點,但我認爲它的所有隻是示例代碼無論如何。