这是我的代码:
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:列表分配索引超出范围
抱歉,这个问题看起来很愚蠢,我是初学者
答案 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