它按预期工作。(至少对于“预期”的某种解释。)
为此,请重新编写代码,以防止
a[-1]在任何时候出现误解:
a = [a for a in range(0,4)]for b in a: print (b) a[-1] = b print (a)
向我们展示
0[0, 1, 2, 0]1[0, 1, 2, 1]2[0, 1, 2, 2]2[0, 1, 2, 2]
可以清楚地看到,立即
b分配 给
a[-1],并在迭代时更改列表。
四个循环执行以下 *** 作:
a[-1]
设置为列表的第一个值0
。结果是现在[0,1,2,0]
。a[-1]
设置为第二个值1
。结果是(很明显)[0,1,2,1]
。a[-1]
设置为2
,结果是[0,1,2,2]
–同样,仅a[-1]
被更改。- 最后,
a[-1]
将设置为中的最后一个值a
,因此有效地它不会改变,最终结果是[0,1,2,2]
。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)