一些Python中的二維數(shù)組的操作方法
需要在程序中使用二維數(shù)組,網(wǎng)上找到一種這樣的用法:
#創(chuàng)建一個(gè)寬度為3,高度為4的數(shù)組 #[[0,0,0], # [0,0,0], # [0,0,0], # [0,0,0]] myList = [[0] * 3] * 4
但是當(dāng)操作myList[0][1] = 1時(shí),發(fā)現(xiàn)整個(gè)第二列都被賦值,變成
[[0,1,0], [0,1,0], [0,1,0], [0,1,0]]
為什么...一時(shí)搞不懂,后面翻閱The Python Standard Library 找到答案
list * n—>n shallow copies of list concatenated, n個(gè)list的淺拷貝的連接
例:
>>> lists = [[]] * 3 >>> lists [[], [], []] >>> lists[0].append(3) >>> lists [[3], [3], [3]]
[[]]是一個(gè)含有一個(gè)空列表元素的列表,所以[[]]*3表示3個(gè)指向這個(gè)空列表元素的引用,修改任何
一個(gè)元素都會(huì)改變整個(gè)列表:
所以需要用另外一種方式進(jìn)行創(chuàng)建多維數(shù)組,以免淺拷貝:
>>> lists = [[] for i in range(3)] >>> lists[0].append(3) >>> lists[1].append(5) >>> lists[2].append(7) >>> lists [[3], [5], [7]]
之前的二維數(shù)組創(chuàng)建方式為:
myList = [([0] * 3) for i in range(4)]
相關(guān)文章
PyQt5中QSpinBox計(jì)數(shù)器的實(shí)現(xiàn)
這篇文章主要介紹了PyQt5中QSpinBox計(jì)數(shù)器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
如何將PySpark導(dǎo)入Python的放實(shí)現(xiàn)(2種)
這篇文章主要介紹了如何將PySpark導(dǎo)入Python的放實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Spring http服務(wù)遠(yuǎn)程調(diào)用實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Spring http服務(wù)遠(yuǎn)程調(diào)用實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
python使用pypdf2實(shí)現(xiàn)pdf文檔解密
利用pypdf2完成pdf的解密,這里的事例是python3環(huán)境下的,當(dāng)然python2下也可以運(yùn)行,只需要修改名稱(chēng)即可,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
Python通過(guò)命令行向Scrapy傳遞參數(shù)
crapy作為一個(gè)強(qiáng)大的Web爬取框架,提供了靈活的命令行參數(shù)傳遞功能,本文介紹了通過(guò)命令行向Scrapy爬蟲(chóng)傳遞參數(shù)的方法,旨在增強(qiáng)爬蟲(chóng)的靈活性和可配置性,感興趣的可以了解一下2024-10-10
Pytorch實(shí)現(xiàn)將模型的所有參數(shù)的梯度清0
這篇文章主要介紹了Pytorch實(shí)現(xiàn)將模型的所有參數(shù)的梯度清0,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06

