title: Python - Appending list to another list
body: <p>I am try to code a game which has a 3x3 grid (think noughts &amp; crosses [US=Tic Tac Toe]).</p>
  
  <p>Each cell has a weighting. When the player places a counter a score is calculated. I want my code to go through the 3x3 matrix and find the top score and return the co-ordinates of the cell where that top score is found (this works) - but if there are several cells with an equal top score I want to return a list containing each of the places where that score is found.</p>
  
  <p>Here is a cut-down version of my code (with LOTS of print statements to try to work out why it's not working).</p>
  
  <p>The intention is that the loop records a simple list ("pos") which has the row and column co-ordinates (e.g. [0][2]) and appends this to a running list of equal scores ("possibles")</p>
  
  <p>If instead of trying to append a 2-entry list I put in a single random number, the overall list ("possibles") builds as expected, but appending the 2-entry list results in a duplicated list of the final position (see output).</p>
  
  <p>I clearly have a logic problem, but I am new to Python. Can anyone show me where I have gone wrong?</p>
  
  <pre><code>def test():
  val = 1
  max_val = 0
  possibles = [] # This is the list where I will store a list of equally weighted positions
  pos = [] # This is simply a 2 number co-ordinate
  pos.append("") # Get it ready for row &amp; col references
  pos.append("")
  for row in range (0,3):
      for col in range (0,3):
          print("Testing row",row,"col",col)
          print("Possibles so far",possibles)
          print("Pos=",pos)
          pos[0] = row
          pos[1] = col
          print("Now pos=",pos)
          #possibles.append(randint(0,100)) # This works
          possibles.append(pos) # This doesn't
  print("List of equals",possibles)
  
  test()
  </code></pre>
  
  <p>Output:</p>
  
  <pre><code>Testing row 0 col 0
  Possibles so far []
  Pos= ['', '']
  Now pos= [0, 0]
  Testing row 0 col 1
  Possibles so far [[0, 0]]
  Pos= [0, 0]
  Now pos= [0, 1]
  Testing row 0 col 2
  Possibles so far [[0, 1], [0, 1]]
  Pos= [0, 1]
  Now pos= [0, 2]
  Testing row 1 col 0
  Possibles so far [[0, 2], [0, 2], [0, 2]]
  Pos= [0, 2]
  Now pos= [1, 0]
  Testing row 1 col 1
  Possibles so far [[1, 0], [1, 0], [1, 0], [1, 0]]
  Pos= [1, 0]
  Now pos= [1, 1]
  Testing row 1 col 2
  Possibles so far [[1, 1], [1, 1], [1, 1], [1, 1], [1, 1]]
  Pos= [1, 1]
  Now pos= [1, 2]
  Testing row 2 col 0
  Possibles so far [[1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2]]
  Pos= [1, 2]
  Now pos= [2, 0]
  Testing row 2 col 1
  Possibles so far [[2, 0], [2, 0], [2, 0], [2, 0], [2, 0], [2, 0], [2, 0]]
  Pos= [2, 0]
  Now pos= [2, 1]
  Testing row 2 col 2
  Possibles so far [[2, 1], [2, 1], [2, 1], [2, 1], [2, 1], [2, 1], [2, 1], [2, 1]]
  Pos= [2, 1]
  Now pos= [2, 2]
  List of equals [[2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]]
  </code></pre>