def insertElement(element, position, array):
last = len(array) - 1
if position > len(array) or position < 0:
print("position does not exist")
else:
for q in range(len(array)+1, position, -1):
array[q+1] = array[q]
print(array)
last += 1
array[position] = element
错误消息:
array[q+1] = array[q] IndexError: list index out of range
答案 0 :(得分:0)
您需要扩展列表,否则您将分配给不存在的索引。
另外,循环
for q in range(len(array)+1, position, -1):
应从len(array)-2
开始,直到position-1
。
您的代码因此变成:
def insertElement(element, position, array):
last = len(array) - 1
if position > len(array) or position < 0:
print("position does not exist")
else:
array.append('_')
for q in range(len(array)-2, position-1, -1):
array[q+1] = array[q]
array[position] = element
答案 1 :(得分:0)
正如其他人指出的那样,您不能通过分配一个不存在的列表位置来做到这一点。您必须使用使列表变大的操作:append
或extend
的某种形式,其中包括+
运算符。这是最容易用切片完成的,例如
array = array[:position] + [element] + array[position:]