簡體   English   中英

如何更改矩陣中的一個特定元素?

[英]How to change one specific element in a matrix?

我已經將矩陣初始化為...

mid_mtx = [ [(0, "")]*len(s2) ]*len(s1)

后來,我創建了一個列表,其中包含兩個值[6,“ Middle”],稱為Middle_ij_val。

我想用middle_ij_val更新mid_mtx [i] [j]。 所以我做了...

mid_mtx[i][j] = middle_ij_val

但是,這將輸出...

[(0, ''), [6, 'Middle'], (0, ''), (0, ''), (0, ''), (0, ''), (0, ''), (0, '')]

[(0, ''), [6, 'Middle'], (0, ''), (0, ''), (0, ''), (0, ''), (0, ''), (0, '')]

[(0, ''), [6, 'Middle'], (0, ''), (0, ''), (0, ''), (0, ''), (0, ''), (0, '')]

[(0, ''), [6, 'Middle'], (0, ''), (0, ''), (0, ''), (0, ''), (0, ''), (0, '')]

[(0, ''), [6, 'Middle'], (0, ''), (0, ''), (0, ''), (0, ''), (0, ''), (0, '')]

[(0, ''), [6, 'Middle'], (0, ''), (0, ''), (0, ''), (0, ''), (0, ''), (0, '')]

我應該如何編碼,以便如果我執行mid_mtx [1] [1],它只會僅更改該特定位置?

[[(0, "")] * len(s2)] * len(s1)

在表達式上方,創建一個重復相同元素而不是不同項目的列表。 所有項目都是同一項目; 更改一項會影響全部。

換句話說, mid_mtx[0] is mid_mtx[1]mid_mtx[0] is mid_mtx[2] ,....或id(mid_mtx[0]) == id(mid_mtx[1])id(mid_mtx[0]) == id(mid_mtx[2]) ,...


[[(0, "") for j in s2] for i in s1]

列表理解上方將創建一個包含獨立項目的列表。

因為最里面的項目是元組(不可變的),所以可以改用以下代碼:

[[(0, "")] * len(s2) for i in s1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM