【问题标题】:IndexError: list assignment index out of range in Python [duplicate]IndexError:Python中的列表分配索引超出范围[重复]
【发布时间】:2014-10-13 23:09:41
【问题描述】:

我正在使用以下代码在 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

有没有办法解决这个问题

【问题讨论】:

  • 您的列表是空的,例如C[0] 不存在;您不能索引超出列表的末尾。试试C.append(int(raw_input))

标签: python list


【解决方案1】:

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

C.append(int(raw_input()))

改为。

【讨论】:

    【解决方案2】:

    您不能通过分配给末尾的元素来扩展 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]吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      相关资源
      最近更新 更多