【发布时间】:2020-08-03 12:43:00
【问题描述】:
arr = [1]
arr[0] = arr.pop()
给我 IndexError: list assignment index out of range 我不明白为什么?
【问题讨论】:
-
因为你
pop'd 从列表中,现在列表有零个元素,然后你尝试分配给arr[0],但由于那里不是arr[0] i>,你得到索引错误。
arr = [1]
arr[0] = arr.pop()
给我 IndexError: list assignment index out of range 我不明白为什么?
【问题讨论】:
pop'd 从列表中,现在列表有零个元素,然后你尝试分配给arr[0],但由于那里不是arr[0] i>,你得到索引错误。
通过调用arr.pop(),它会使arr 更改为[],因此之后如果您尝试在索引0 检索/更改项目,它将超出范围,因为它的大小是0
【讨论】:
赋值语句的右侧在左侧之前计算。因此,当您尝试在索引 0 处分配时,列表为空。
你可以大致重写你的代码:
arr = [1]
popped = arr.pop()
arr[0] = popped
【讨论】: