我正在使用 Python 中的 for 循环,并试图适应它们处理变量的方式。
拿下面这段代码:
a=[1,2,3,4,5]
b=a
b[0]=6
这样做之后,b 和a 的第零个元素都应该是6。 = 符号指向数组的引用,是吗?
现在,我使用一个 for 循环:
a=[1,2,3,4,5]
for i in a:
i=6
我的期望是 a 的每个元素现在都是 6,因为我认为 i 指向 中的元素>a 而不是复制它们;然而,情况似乎并非如此。
不胜感激,谢谢!
请您参考如下方法:
python 中的所有内容都被视为引用。当您执行 b[0] = 6 时发生的事情是您将 6 分配给该表达式的 LHS 定义的适当位置。
在第二个示例中,您将数组中的引用分配给 i,因此 i 是 1,然后是 2,然后是 3,...但是 i 永远不是数组的元素。所以当你给它赋值 6 时,你只是改变了 i 代表的东西。
http://docs.python.org/reference/datamodel.html如果您想了解更多细节,这是一本有趣的读物。
