Skip to content Skip to sidebar Skip to footer

Variable Changes Without Being Touched

I'm quite new to Python but this is strange. So, I have a matrix (a list of lists) and I pass it to a function (creaMatrixVNS). def creaMatrixVNS(best_matrice, time): matrice

Solution 1:

When you do matrice = best_matrice, you're just creating a new reference named matrice pointing to the same object as the reference best_matrice.

Check out the accepted answer for Deep copy a list in Python for an example of a deep copy of a list in Python.

Solution 2:

A quick shorthand for copying lists 'deeply' without importing is the use of the : slice operator. In your situation, you'd need to use it twice to explicitly duplicate the lists and their contents rather than copying references to the inner lists.

A trivial example is new_lst = old_lst[:] to copy all contents of old_lst -- in your case, you'd want to do matrice = best_matrice[:][:], thereby copying the contents of the inner lists, too.

Post a Comment for "Variable Changes Without Being Touched"