我的for循环有什么问题? (Python 2)

时间:2018-07-18 16:35:38

标签: python-2.7 loops

这是我的代码:

start_list = [5, 3, 1, 2, 4]
square_list = []
start_list.sort()
for i in xrange(0,len(start_list)):
  square_list[i]=start_list[i]**2
print square_list

我得到的错误是:

  

IndexError:列表分配索引超出范围

抱歉,这个问题看起来很愚蠢,我是初学者

3 个答案:

答案 0 :(得分:0)

您的问题是您将square_list创建为空,因此当您尝试存储到元素中时,该元素不存在并且python错误。只需更改定义,以创建一个长度为start_list且具有零值的列表:

start_list = [5, 3, 1, 2, 4]
square_list = [0] * len(start_list)
start_list.sort()
for i in xrange(0,len(start_list)):
      square_list[i]=start_list[i]**2
print square_list

答案 1 :(得分:0)

您还可以使用append将新项目添加到列表中:

start_list = [5, 3, 1, 2, 4]
square_list = []
start_list.sort()
for i in xrange(0,len(start_list)):
  square_list.append(start_list[i]**2)
print square_list

答案 2 :(得分:0)

除非列表已经包含该元素,否则您将无法访问或修改该列表的元素。 以下代码将显示错误:

l=[] 
l[0]=4 # error -- element 0 doesn't exist yet, so can't modify it 
print l[2]  # error -- element 2 doesn't exist yet, so can't read

在您的情况下,您可以使用添加或插入方法 see this article