我在Python中使用for
循环,并试图习惯它们处理变量的方式。引用Python的Python
以下面的片为代码:
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
的元素,而不是复制它们;但是,这似乎并非如此。
澄清将不胜感激,谢谢!
“变量我实际上对自身内容没有任何意义” - 这不完全正确,“i”是对“a”中值的引用,但赋值将会将“i”更改为引用到别的东西,整数是不可变的,所以没有办法通过修改'for'循环中的'i'来改变OP的列表。但考虑'a = [[1],[2]]'然后'我在a:i [:] = [6]'中。 'a'将变成'[[6],[6]]'。 –
@ F.J。这是因为'a'的值本身是可变类型。它与a中的位置无关,而是与物体的位置无关,无论它们是否位于a位置。 – cwallenpoole
这里没有任何参数,我只是想澄清一下,因为新手读者可能会将您的语句解释为“无法通过循环其值来修改列表”,当您有可变值时,这是不正确的。 –