Hello. I think also that the problem comes from the fact that liste are copiez by reference. Le 13 nov. 2015 06:25, "Nils Bruin" <[email protected]> a écrit :
> On Thursday, November 12, 2015 at 6:09:26 PM UTC-8, Roberto La Scala wrote: > >> It happens that the value of the list l changes for different values of i. >> >> Since you are not saying what answer you expected, it is difficult to > judge in what sense the answer seemed strange to you. However, the > following is sometimes considered surprising in python: > > sage: a=[1] > sage: b=[a,a] > sage: b > [[1], [1]] > sage: b[1].append(2) > sage: b > [[1, 2], [1, 2]] > > As you can see, b is a list consisting of *the same* list a. Hence, a > change to "a" in one place affects all occurrences. > > Whenever you *mutate* a list, you have to ask yourself if you are free to > do so or if someone else might be holding a reference to the same list and > therefore will be affected by the change too. > > One solution here would be to *replace* b[1] by a new list rather than > append an element to b[1]. > > sage: a=[1] > sage: b=[a,a] > sage: b[1]= a + [2] > sage: b > [[1], [1, 2]] > > > > -- > You received this message because you are subscribed to the Google Groups > "sage-support" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sage-support. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
