Python中初始化一個(gè)二維數(shù)組及注意事項(xiàng)說(shuō)明
Python初始化一個(gè)二維數(shù)組及注意事項(xiàng)
Python在初始化二維數(shù)組的時(shí)候還是有一些坑的,主要是要避免可變?cè)氐膫鬟f改變問(wèn)題:
array = [0, 0, 0] matrix = [array] * 3 matrix[0][0] = 1 print(matrix) >>>[[1, 0, 0], [1, 0, 0], [1, 0, 0]]
如果用上面這種方式初始化數(shù)組,實(shí)際上并不是創(chuàng)建了一個(gè)新的二維數(shù)組,而是創(chuàng)建了三個(gè)指向array的引用。
因此,如果改變array的話,這三個(gè)就會(huì)同步隨之改變。
那么如何正確初始化一個(gè)二維數(shù)組呢?
方法一:
matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] matrix[0][0] = 1 print(matrix) >>>[[1, 0, 0], [0, 0, 0], [0, 0, 0]]
方法二:(列表推導(dǎo)式)
matrix = [[0 for i in range(3)] for i in range(3)] matrix[0][0] = 1 print(matrix) >>>[[1, 0, 0], [0, 0, 0], [0, 0, 0]]
Python二維數(shù)組初始化: [[0]*n]*n 與 [[0]*n for i in range(n)]
做題的時(shí)候因?yàn)槌跏蓟蒣[0]*n]*n卡了好久,后來(lái)才知道這兩種方法初始化出來(lái)的數(shù)組不一樣。
用第一種方式初始化,其實(shí)是將【0】*n這個(gè)列表的索引復(fù)制了n遍,改變其中一個(gè),其它的也會(huì)跟著改變。
而第二種是通過(guò)for i in range(n)推導(dǎo)出的真實(shí)二維列表。
注意:
推薦使用全部用循環(huán)或者組合的方式(里面是×,外面循環(huán))的方式。如果都為乘的方式是淺復(fù)制,每一行的改變都會(huì)改變其他行。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)簡(jiǎn)單淘寶秒殺功能
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單淘寶秒殺功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05記一次python 爬蟲(chóng)爬取深圳租房信息的過(guò)程及遇到的問(wèn)題
這篇文章主要介紹了記一次python 爬蟲(chóng)爬取深圳租房信息的過(guò)程,幫助大家更好的理解和學(xué)習(xí)python爬蟲(chóng),感興趣的朋友可以了解下2020-11-11Python實(shí)現(xiàn)處理apiDoc轉(zhuǎn)swagger的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)處理apiDoc轉(zhuǎn)swagger的方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2023-02-02Python如何基于selenium實(shí)現(xiàn)自動(dòng)登錄博客園
這篇文章主要介紹了Python如何基于selenium實(shí)現(xiàn)自動(dòng)登錄博客園,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12python成長(zhǎng)技能之正則表達(dá)式示例詳解
這篇文章主要介紹了python正則表達(dá)式的相關(guān)資料,涵蓋了正則表達(dá)式的基本語(yǔ)法、字符匹配、重復(fù)出現(xiàn)數(shù)量、字符集、邊界匹配、組、貪婪與非貪婪匹配等內(nèi)容,并通過(guò)實(shí)際例子展示了如何使用正則表達(dá)式進(jìn)行字符串匹配和處理,需要的朋友可以參考下2025-03-03PyCharm Ctrl+Shift+F 失靈的簡(jiǎn)單有效解決操作
這篇文章主要介紹了PyCharm Ctrl+Shift+F 失靈的簡(jiǎn)單有效解決操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01python3 下載網(wǎng)絡(luò)圖片代碼實(shí)例
這篇文章主要介紹了python3 下載網(wǎng)絡(luò)圖片代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08python使用pil庫(kù)實(shí)現(xiàn)圖片合成實(shí)例代碼
這篇文章主要介紹了python PIL實(shí)現(xiàn)圖片合成實(shí)例代碼,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Keras之fit_generator與train_on_batch用法
這篇文章主要介紹了Keras之fit_generator與train_on_batch用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06