2015-07-10 24 views
-2

时,当追加到Python中的列表中,我得到的错误:Python的列表索引范围的追加列表

Traceback (most recent call last): 
File "/Volumes/HARDRIVE/Java/Python/Test.py", line 16, in <module> 
cities.append([1][i]) 
IndexError: list index out of range 

名单cities这里初始化:

cities = [[0 for x in range(math.factorial(CITIES)+3)] for x in range(math.factorial(CITIES)+3)] 

为什么它产生这个错误时,显然有足够的空间来进行追加操作(我给列表比它需要的多三个)?我该怎么做才能解决它?这是包含的代码行的循环:

for i in range(0,CITIES): 
cities.append([1][i]) 
cities.append([1][i]) 
holder=cities[0][i] 
cities[0][i]=cities[CITIES+1][i] 
cities[CITIES+1][i]=holder 

感谢

+5

'[1] [i]'是试图获得只包含'1'的列表的第i个元素。 – NightShadeQueen

+0

它是如何包含1的?我把它初始化为'CITIES'的阶乘('CITIES'是5) – APCoding

+0

2D阵列有什么问题吗?这会搞乱'append'吗? – APCoding

回答

2

我想,也许你可能要追加一个新的列表到您现有的名单

cities.append([1,i,0]) 
一边

为你如评论中提到的那样容易地重现问题,而与追加没有任何关系

for i in range(3): 
    try: print i, [1][i] 
    except IndexError: print "LIST:[1] has no index", i 
+0

那么,我该如何解决我的问题呢?这在技术上不是一个答案。 – APCoding

+0

改变你的追加到实际追加列表...正如我在第一个代码块显示的...它显示了你做错了什么...我不能帮助你,而不是更多的细节......你的问题在技术上应该被关闭(并且为此目的还有未决投票),因为它完全不清楚你期望的行为是什么 –

+0

我标记了它让主持人检查出来 – APCoding

相关问题