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

1 投票
2 回答
23104 浏览
提问于 2025-04-18 17:55

我在用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*C2**C[x]+2*C-1中会给你一个列表。这里不太清楚你想做什么,但2*C是行不通的。你是想说2*C[x]吗?

3

你的列表是空的。Perl会自动扩展数组,但Python不会。

C.append(int(raw_input()))

而是。

撰写回答