Python把同一个对象循环赋值给另外一个变量,修改一个对象,其他对象也修改了

>>> row=['_'] * 3
>>> board = []
>>> for i in range(3):
...     board.append(row)
...
>>> row
['_', '_', '_']
>>> board
[['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
>>> board[2][1]='A'
>>> row
['_', 'A', '_']
>>> board
[['_', 'A', '_'], ['_', 'A', '_'], ['_', 'A', '_']]  #3个子对象都被修改了
>>>

 

如果不想复制对象,可以在循环赋值前初始化下被赋值的变量

>>> board = []
>>> for i in range(3):
...     row=['_'] * 3   #循环赋值前,初始化下变量
...     board.append(row)
...
>>> board
[['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
>>> row
['_', '_', '_']
>>> board[2][0] = 'X'
>>> board
[['_', '_', '_'], ['_', '_', '_'], ['X', '_', '_']]
>>> row
['X', '_', '_']
>>>

 

相关文章:

  • 2022-12-23
  • 2021-06-14
  • 2022-12-23
  • 2022-02-07
  • 2021-08-26
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-08
  • 2021-10-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-27
相关资源
相似解决方案