Python 3.x 为什么索引器会给出列表分配?

Python 3.x 为什么索引器会给出列表分配?,python-3.x,Python 3.x,在上面的示例中,第3行给出了索引错误 def update_array(incoming: tuple, output: list = []): for index, element in enumerate(incoming): output[index] = incoming[index] if index % 2 == 0: incoming[index] = incoming[index] / 2 return output 我不明白为什么会发生

在上面的示例中,第3行给出了索引错误

def update_array(incoming: tuple, output: list = []):
  for index, element in enumerate(incoming):
    output[index] = incoming[index]
    if index % 2 == 0:
        incoming[index] = incoming[index] / 2
  return output
我不明白为什么会发生错误,试图学习元组和列表。
谢谢:-)

错误原因是
输出是一个空列表,不占用任何空间。您可以将其附加到列表中

output.append(传入[索引])

你怎么称呼这个?如果
output
是默认的空列表(顺便说一句,请参见),那么您不能为其中的任何索引赋值。
output[index] = incoming[index]
IndexError: list assignment index out of range