python創建多維列表


By francis_hao    Mar 24,2018

 

"*"操作符可以用於列表,表示將列表內容重復n次。如下,

 

但是當列表內容是列表的時候就出問題了,如果我只是修改多維列表中的一項,結果是所有的都改變了,如下

 

這是因為,"*"操作符相當於"淺復制"的概念。只復制了一個"指針"過去,如下

 

這個時候如果修改復制后的內容,其結果就取決於復制的內容是什么了,如果是一個獨立的對象,那修改不會造成其他影響

 

但是,如果復制的內容是一個復合的對象,而修改僅僅是修改了復合對象里的內容,那么所有復制的復合對象內容都會被改變,如下圖

 

那么,怎么實現類似"深復制"的操作呢?官方FAQ里提供了答案,就是用新創建的列表為每個復制的對象賦值。

 

一種更簡便的寫法:

這里把[None]*2看成是一個整體,for是基於它的操作。

 

 


本文由 劉英皓 創作,采用 知識共享署名-非商業性使用-相同方式共享3.0中國大陸許可協議 進行許可。歡迎轉載,請注明出處:
轉載自:http://www.cnblogs.com/yinghao1991/p/8641236.html

 

 

參考

【1】faq-multidimensional-list https://docs.python.org/3/faq/programming.html#faq-multidimensional-list


免責聲明!

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



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