Python把同一個對象循環賦值給另外一個變量


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', '_', '_']
>>>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM