Hello.
I'm having some trouble with arrays in Python. From what I understand, when a statement such as the one below is used, the NewArray does not contain a copy of the OldArray, but any references to NewArray are simply redirected to OldArray.
This is demontrated:
returns [99, 1, 1, 1, 1, 1]
I can work around this by doing such.
This doesn't work when I want to call a function that has an array as an argument.
Normally, I would use this to actually change the board, in which case it works well.
However, when I want to test a potential new move using this function, it still alters the argument passed to it.
For instance:
Is there some way to avoid this?
Thanks,
The Panda
I'm having some trouble with arrays in Python. From what I understand, when a statement such as the one below is used, the NewArray does not contain a copy of the OldArray, but any references to NewArray are simply redirected to OldArray.
NewArray = OldArray
This is demontrated:
Array = [1,1,1,1,1,1] Arr2 = Array Array[0] = 99 print Arr2
returns [99, 1, 1, 1, 1, 1]
I can work around this by doing such.
Array = [1,1,1,1,1,1] Arr2 = Array[:] Array[0] = 99 print Arr2
This doesn't work when I want to call a function that has an array as an argument.
def MakeMove(Board,Rows,Marker,Move): Board = Board[:] for i in range(0,Rows): i = (Rows-1)-i if Board[i][Move]==".": Board[i][Move] = Marker break return Board(Function from a connect 4 game)
Normally, I would use this to actually change the board, in which case it works well.
However, when I want to test a potential new move using this function, it still alters the argument passed to it.
For instance:
TestBoard = MakeMove(TheBoard[:],Rows,Marker,Move)TheBoard variable is changed.
Is there some way to avoid this?
Thanks,
The Panda

Help
Welcome to BleepingComputer, a free community where people like yourself come together to discuss and learn how to use their computers. Using the site is easy and fun. As a guest, you can browse and view the various discussions in the forums, but can not create a new topic or reply to an existing one unless you are logged in. Other benefits of registering an account are subscribing to topics and forums, creating a blog, and having no ads shown anywhere on the site.



Back to top










