为什么使用counter+1访问列表元素时counter变量的值没有更新?
问题原因说明
counter + 1属于只读计算表达式,仅会读取counter的当前值参与计算,不会将计算结果回存到counter变量中,因此不会修改counter的原始值。
你代码中list[counter+1]的执行逻辑是:
- 读取
counter当前存储的数值0 - 临时计算0+1得到结果1
- 使用临时结果1作为下标取列表对应位置的元素
- 临时计算的结果1没有被赋值给任何变量,使用后直接丢弃,
counter本身的存储值始终为0
如果需要更新counter的值,必须显式执行赋值操作,可选写法如下:
- 常规写法:
counter = counter + 1 - 简化自增写法:
counter += 1
修改后的可实现预期效果的代码示例:
list = [1,2,3,4,5] counter = 0 # 显式更新counter的值 counter += 1 b = list[counter-1] + list[counter] print(counter) # 输出为1
内容的提问来源于stack exchange,提问作者Jigsaw
相关产品推荐
相关产品推荐

