欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python二維數(shù)組不同初始化方式的差異說明

 更新時間:2023年08月18日 08:34:50   作者:NashSP  
這篇文章主要介紹了Python二維數(shù)組不同初始化方式的差異說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Python二維數(shù)組不同初始化方式的差異

在Python中,一個m行n列的二維數(shù)組有兩種常見的初始化方式:

a=[[0 for j in range(n)] for i in range(m)]
a=[[0*n]*m]

第一種初始化方式通過兩層for循環(huán),創(chuàng)建了m*n個元素,是深拷貝。

但是第二種初始化方式就需要注意了,它是淺拷貝。0*n是將0的索引復(fù)制了n遍,然后[0*n]*m是將0*n的索引復(fù)制了m遍。

所以如果某一行的某個元素發(fā)生了改變,其他行的對應(yīng)列位置的元素也會跟著一起改變。

比如下面的例子:

a=[[0]*3]*3
print(a)
a[1][1]=1
print(a)

運行結(jié)果:

所以極不推薦第二種初始化方式,除非遇到以下兩種情況可以考慮使用:

1、只是初始化一維數(shù)組。

2、初始化二維數(shù)組后沒有改變元素的需求(這一點很難保證,因為說不定以后什么時候就需要改變了)。

Python創(chuàng)建二維數(shù)組和初始化

Python用什么表達(dá)二維數(shù)組

嚴(yán)格意義上說,Python中并沒有數(shù)組的概念,Python中表達(dá)一組數(shù)據(jù)有多種形式,例如list,tuple,set等數(shù)據(jù)結(jié)構(gòu)都可以表達(dá)一組數(shù),并且這組數(shù)也沒有C和C++中數(shù)組的的同質(zhì)限制,這些數(shù)可以是任何一種數(shù)據(jù)類型。

以list為例(list又叫列表),要想實現(xiàn)一個所謂的二維數(shù)組(有行有列),可以使用嵌套list來實現(xiàn)。

例如:要想實現(xiàn)一個如

的一個2行3列的二維數(shù)組,可以使用如下嵌套list來表達(dá):

L = [[1, 2, 3], [4, 5, 6]]

如何初始化一個二維數(shù)組

在很多應(yīng)用場景下,二維數(shù)組的數(shù)據(jù)是從鍵盤或者其他什么文件中輸入的。

這時就迫切需要初始化一個二維數(shù)組,等待數(shù)據(jù)的錄入。

1.利用list自身進行構(gòu)造(注意,此方法并不能構(gòu)造完全靈活的二維數(shù)組,不建議采用)

list自身的構(gòu)造函數(shù)形式多種多樣。想構(gòu)建一個二維數(shù)組自然并非難事。

例如,想要構(gòu)建一個m行n列的二維數(shù)組??梢赃@樣初始化。

L = [[] * n] * m

展示結(jié)果如下:

如果想要給一個初始化的值,可以寫成:

L = [[0] * n] * m

則:

但是,由于此方法構(gòu)造的二維數(shù)組是對[]*n引用了m次,更改其中一行的值會導(dǎo)致每行的值都被更改。

所以,并不是一個可以完全操控到列粒度的二維數(shù)組。

應(yīng)用背景極其狹窄,不推薦使用。

m = 2
n = 3
L = [[3] * n] * m #構(gòu)造二維數(shù)組
print(L)
L[0][1] = 5 #修改某一個值,其他行的對應(yīng)列值也會被修改。
print(L)

得到的結(jié)果為:

2.利用傳統(tǒng)的list的append方法,通過迭代構(gòu)造

m = 2 #2行
n = 3 #3列
l = 0 #行從0開始
mat = [] # 定義一個二維數(shù)組mat
while l < m:
    r = 0 #列從0開始
    line = [] #line存儲每一行數(shù)據(jù)
    while r < n:
        line.append(0) #裝載行數(shù)據(jù)
        r = r + 1
    mat.append(line) #按行裝載二維數(shù)組
    l = l + 1
print(mat)

得到的結(jié)果依然為:

3.利用numpy包構(gòu)建二維數(shù)組(矩陣)

可以使用numpy包來構(gòu)建二維數(shù)組,例如要構(gòu)建一個m行n列的初始化為0二維數(shù)組,可以編寫程序:

m = 3
n = 4
mat = np.zeros((m, n))
print(mat)

結(jié)果為:

類似的:

構(gòu)建一個m行n列的初始化為0二維數(shù)組

m = 3
n = 4
mat = np.ones((m, n))
print(mat)

構(gòu)建一個m行n列的初始化為0-1隨機數(shù)的二維數(shù)組:

m = 3
n = 4
mat = np.random.random((m, n))
print(mat)

構(gòu)建一個m行n列的初始化為1-11步長為2的二維數(shù)組:

m = 2
n = 3
mat = np.arange(1, 12, 2).reshape(m, n)
print(mat)

結(jié)果是:

構(gòu)建一個m行n列的空的二維數(shù)組:

m = 2
n = 3
mat = np.empty((m, n))
print(mat)

 但注意,結(jié)果并不為空,而是一些極小的浮點數(shù),并沒有實際意義。

操作二維數(shù)組

如果你用的是list,那么操作二維數(shù)組和其他語言沒什么區(qū)別。也是通過方括號下標(biāo)來獲取單個數(shù)據(jù),也是通過for循環(huán)迭代來遍歷二維數(shù)組。這里不再贅述。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python寫入CSV文件的方法

    Python寫入CSV文件的方法

    這篇文章主要介紹了Python寫入CSV文件的方法,涉及Python使用csv模塊操作csv文件讀寫的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下
    2015-07-07
  • 最新版Anaconda安裝教程

    最新版Anaconda安裝教程

    本文主要介紹了最新版Anaconda安裝教程,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • python 添加用戶設(shè)置密碼并發(fā)郵件給root用戶

    python 添加用戶設(shè)置密碼并發(fā)郵件給root用戶

    這篇文章主要介紹了python 添加用戶設(shè)置密碼并發(fā)郵件給root用戶的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • Python爬蟲數(shù)據(jù)處理模塊的安裝使用教程

    Python爬蟲數(shù)據(jù)處理模塊的安裝使用教程

    這篇文章主要為大家介紹了Python爬蟲數(shù)據(jù)處理模塊的安裝使用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • django項目環(huán)境搭建及在虛擬機本地創(chuàng)建django項目的教程

    django項目環(huán)境搭建及在虛擬機本地創(chuàng)建django項目的教程

    這篇文章主要介紹了django項目環(huán)境搭建及在虛擬機本地創(chuàng)建django項目的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Python結(jié)合Window計劃任務(wù)監(jiān)測郵件的示例代碼

    Python結(jié)合Window計劃任務(wù)監(jiān)測郵件的示例代碼

    這篇文章主要介紹了Python結(jié)合Window計劃任務(wù)監(jiān)測郵件的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • python操作 hbase 數(shù)據(jù)的方法

    python操作 hbase 數(shù)據(jù)的方法

    下面小編就為大家?guī)硪黄猵ython操作 hbase 數(shù)據(jù)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • 解決pytorch 模型復(fù)制的一些問題

    解決pytorch 模型復(fù)制的一些問題

    這篇文章主要介紹了解決pytorch 模型復(fù)制的一些問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 如何從Python的cmd中獲得.py文件參數(shù)

    如何從Python的cmd中獲得.py文件參數(shù)

    這篇文章主要介紹了如何從Python的cmd中獲得.py文件參數(shù)操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • PyQt中實現(xiàn)自定義工具提示ToolTip的方法詳解

    PyQt中實現(xiàn)自定義工具提示ToolTip的方法詳解

    這篇文章主要為大家詳細(xì)介紹了PyQt中實現(xiàn)自定義工具提示ToolTip的方法詳解,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定幫助,需要的可以參考一下
    2022-05-05

最新評論