我正在用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]
吗?