Message329360
Thank you for your quick explanation of this to me.
Dan
On Tue, Nov 6, 2018 at 8:04 AM Steven D'Aprano <report@bugs.python.org>
wrote:
>
> Steven D'Aprano <steve+python@pearwood.info> added the comment:
>
> This is not a bug, this is standard behaviour, working as designed.
>
> 'a' is not a copy of the list 'x', 'a' is another name for the same list
> as 'x'. Any in-place modifications you make to 'a' happens to the object
> itself, the list, which is visible regardless of which name you refer to it
> by.
>
> If you are a C programmer, you can think of this as being similar to
> pointers: think of 'x' as a pointer to the list, and 'a' as a pointer to
> the same list. (That's more or less what happens under the hood.) From the
> Python level, we say that both names 'a' and 'x' refer to the same object.
>
> If you want a copy, you can use the copy module, or for lists, you can
> take a slice: a = x[:] makes a copy of the list.
>
> For immutable objects like strings, you don't need a copy, because you
> cannot modify them in place: any operation on a string always creates a new
> string, leaving the old one untouched.
>
> ----------
> nosy: +steven.daprano
> resolution: -> not a bug
> stage: -> resolved
> status: open -> closed
>
> _______________________________________
> Python tracker <report@bugs.python.org>
> <https://bugs.python.org/issue35176>
> _______________________________________
> |
|
Date |
User |
Action |
Args |
2018-11-06 14:23:25 | darmentr | set | recipients:
+ darmentr, paul.moore, tim.golden, steven.daprano, zach.ware, steve.dower |
2018-11-06 14:23:25 | darmentr | link | issue35176 messages |
2018-11-06 14:23:25 | darmentr | create | |
|