1 | initial version |

Responding to @Mathmon's comment to @kcrisman's first (?) answer: that's because "v" is a reference (pointer) to a vector object somewhere in memory. The statement `v = copy(w)`

creates a new vector in memory with a copy of `w`

s content and then assigns v as a reference to that new vector.

In the dictionary, `I[1]`

is another reference (to the location in memory of the value associated with the key `1`

. So, for example if you want to update the vector value in `I`

you could do something like:

```
sage: I = { 1: vector(QQ, (1,2)) }
sage: a = I[1]
sage: a.set(0,3)
sage: I
{1: (3, 2)}
```

to reassign the reference `I[1]`

use it's name (not a secondary reference to the same location):

```
sage: w = vector(QQ, (4,5))
sage: I[1] = copy(w)
sage: I
{1: (4, 5)}
```

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.