code_junkie

Unexpected feature in a Python list of lists

Nov 11th, 2011
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.50 KB | None | 0 0
  1. myList = [[1] * 4] * 3
  2.  
  3. [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
  4.  
  5. myList[0][0] = 5
  6.  
  7. [[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]
  8.  
  9. [[1]*4 for n in range(3)]
  10.  
  11. [[1] * 4] * 3
  12.  
  13. [[1, 1, 1, 1]] * 3
  14.  
  15. >>> inner = [1,1,1,1]
  16. >>> outer = [inner]*3
  17. >>> outer
  18. [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]
  19. >>> inner[0] = 5
  20. >>> outer
  21. [[5, 1, 1, 1], [5, 1, 1, 1], [5, 1, 1, 1]]
  22.  
  23. lst = [[1] * 4] * 3
  24.  
  25. lst1 = [1]*4
  26. lst = [lst1]*3
  27.  
  28. lst[0][0] = 5
  29. lst1[0] = 5
  30.  
  31. lst = [ [1]*4 for n in xrange(3) ]
Add Comment
Please, Sign In to add comment