亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python的二維數(shù)組初始化方式

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

Python的二維數(shù)組初始化問題

Python一維數(shù)組初始化

In [1]: a = [0]*5
In [2]: a
Out[2]: [0, 0, 0, 0, 0]
In [3]: a[1]=1
In [4]: a
Out[4]: [0, 1, 0, 0, 0]
 

Python的一維數(shù)組初始化時沒有太大問題,但是二維初始化就不能這么搞了,不信你看

 
In [5]: a = [[0]*5]*5
In [6]: a
Out[6]:
[[0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]]
In [7]: a[1][1] = 1
In [8]: a
Out[8]:
[[0, 1, 0, 0, 0],
 [0, 1, 0, 0, 0],
 [0, 1, 0, 0, 0],
 [0, 1, 0, 0, 0],
 [0, 1, 0, 0, 0]]
 

這樣初始化實際上是相當(dāng)于淺拷貝,只拷貝了個索引。

應(yīng)該用列表生成器來初始化二維數(shù)組

In [12]: b = [[0]*5 for _ in range(5)]
In [13]: b
Out[13]:
[[0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]]
In [14]: b[3][3] = 3
In [15]: b
Out[15]:
[[0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 3, 0],
 [0, 0, 0, 0, 0]]

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

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

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

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

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

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 = [[1, 2, 3], [4, 5, 6]]

展示結(jié)果如下:

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

L = [[] * 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ū)別。

也是通過方括號下標來獲取單個數(shù)據(jù),也是通過for循環(huán)迭代來遍歷二維數(shù)組。

這里不再贅述。

總結(jié)

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

相關(guān)文章

  • 熵值法原理及Python實現(xiàn)的示例詳解

    熵值法原理及Python實現(xiàn)的示例詳解

    熵值法也稱熵權(quán)法,是學(xué)術(shù)研究及實際應(yīng)用中的一種常用且有效的編制指標的方法。本文就來和大家聊聊熵值法原理及Python實現(xiàn),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-02-02
  • Python中byte字符串轉(zhuǎn)string的實現(xiàn)

    Python中byte字符串轉(zhuǎn)string的實現(xiàn)

    本文主要介紹了Python中byte字符串轉(zhuǎn)string的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 深度剖析使用python抓取網(wǎng)頁正文的源碼

    深度剖析使用python抓取網(wǎng)頁正文的源碼

    平時打開一個網(wǎng)頁,除了文章的正文內(nèi)容,通常會有一大堆的導(dǎo)航,廣告和其他方面的信息。本文的目的,在于說明如何從一個網(wǎng)頁中提取出文章的正文內(nèi)容,而過渡掉其他無關(guān)的的信息。
    2014-06-06
  • python常量折疊基礎(chǔ)知識點講解

    python常量折疊基礎(chǔ)知識點講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python常量折疊基礎(chǔ)知識點講解,對此有興趣的朋友可以跟著學(xué)習(xí)下。
    2021-02-02
  • Python 注釋:解釋和優(yōu)化代碼可讀性

    Python 注釋:解釋和優(yōu)化代碼可讀性

    本文將探討Python中注釋的重要性,以及如何通過注釋解釋和優(yōu)化代碼的可讀性,了解如何正確使用注釋可以提高代碼的可維護性和可理解性
    2023-09-09
  • 基于python實現(xiàn)語音錄入識別代碼實例

    基于python實現(xiàn)語音錄入識別代碼實例

    這篇文章主要介紹了如何通過python實現(xiàn)語音錄入識別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Python3 列表,數(shù)組,矩陣的相互轉(zhuǎn)換的方法示例

    Python3 列表,數(shù)組,矩陣的相互轉(zhuǎn)換的方法示例

    這篇文章主要介紹了Python3 列表,數(shù)組,矩陣的相互轉(zhuǎn)換的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 詳解python中docx庫的安裝過程

    詳解python中docx庫的安裝過程

    這篇文章主要介紹了python中docx庫的安裝過程,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • 基于Python計算圓周率pi代碼實例

    基于Python計算圓周率pi代碼實例

    這篇文章主要介紹了基于Python計算圓周率pi代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Python實現(xiàn)簡單的ui界面的設(shè)計步驟(適合小白)

    Python實現(xiàn)簡單的ui界面的設(shè)計步驟(適合小白)

    當(dāng)我們書寫一個python程序時,我們在控制臺輸入信息時,往往多有不便,并且為了更加美觀且直觀的方式輸入控制命令,我們常常設(shè)計一個ui界面,這樣就能方便執(zhí)行相關(guān)功能,如計算器、日歷等界面,本博客是為了給ui設(shè)計的小白進行講解,需要的朋友可以參考下
    2024-07-07

最新評論