IndexError: Python中列表赋值索引超出范围



我正在用python解决一个问题,使用以下代码:

T = int(raw_input()) 
C=[] 
for x in range(T):     
    C[x]=int(raw_input()) 
res=[] 
for x in range(T):     
    res[x]=2**C[x]+2*C-1      
for x in range(T):     
    print "%dn",(res[x])   

和这个错误出现:

Traceback (most recent call last):
  File "C:UsersACERDocumentsworkssource codepython practiceTest1.py", line 4, in <module>
    C[x]=int(raw_input())
IndexError: list assignment index out of range

可以解决这个错误吗?

您的列表为空。Perl会自动展开数组,但python不会。

C.append(int(raw_input()))

不能通过赋值给超出末尾的元素来展开Python列表。

您需要显式地展开列表,但替换

C[x]=int(raw_input()) 

C.append(int(raw_input()))

对于res也是如此。

最后但并非最不重要的是,2**C[x]+2*C-1中的2*C会给你一个列表。不清楚你在这里想做什么,但2*C不会起作用。你是说2*C[x]吗?

最新更新