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 "%d\n",(res[x])
结果出现了这个错误:
Traceback (most recent call last):
File "C:\Users\ACER\Documents\works\source code\python practice\Test1.py", line 4, in <module>
C[x]=int(raw_input())
IndexError: list assignment index out of range
有没有人能帮我解决这个错误呢?
2 个回答
0
你不能通过给一个超出列表末尾的元素赋值来扩展Python列表。
你需要明确地扩展列表,方法是把
C[x]=int(raw_input())
替换为
C.append(int(raw_input()))
对于res
也是一样的。
最后,2*C
在2**C[x]+2*C-1
中会给你一个列表。这里不太清楚你想做什么,但2*C
是行不通的。你是想说2*C[x]
吗?
3
你的列表是空的。Perl会自动扩展数组,但Python不会。
C.append(int(raw_input()))
而是。