By francis_hao Mar 24,2018 html
"*"操做符能夠用於列表,表示將列表內容重複n次。以下, python
可是當列表內容是列表的時候就出問題了,若是我只是修改多維列表中的一項,結果是全部的都改變了,以下 spa
這是由於,"*"操做符至關於"淺複製"的概念。只複製了一個"指針"過去,以下 指針
這個時候若是修改複製後的內容,其結果就取決於複製的內容是什麼了,若是是一個獨立的對象,那修改不會形成其餘影響 htm
可是,若是複製的內容是一個複合的對象,而修改僅僅是修改了複合對象裏的內容,那麼全部複製的複合對象內容都會被改變,以下圖 對象
那麼,怎麼實現相似"深複製"的操做呢?官方FAQ裏提供了答案,就是用新建立的列表爲每一個複製的對象賦值。 blog
一種更簡便的寫法: ci
這裏把[None]*2當作是一個總體,for是基於它的操做。 get
本文由 劉英皓 創做,採用 知識共享署名-非商業性使用-相同方式共享3.0中國大陸許可協議 進行許可。歡迎轉載,請註明出處:
轉載自:http://www.cnblogs.com/yinghao1991/p/8641236.html io
【1】faq-multidimensional-list https://docs.python.org/3/faq/programming.html#faq-multidimensional-list