Python 中數(shù)組和數(shù)字相乘時(shí)的注意事項(xiàng)說明
注意事項(xiàng)
[object] * n 的時(shí)候并沒有復(fù)制n-1個(gè)object,而是增加了n-1個(gè)對object的引用。
例子說明
目標(biāo):生成一個(gè)10*10且所有值都是0的二維數(shù)組
方法一:
[ [0] * 10] * 10
方法二:
[ [0 for _ in range(10)] for _ in range(10)]
本以為兩種方法得到的結(jié)果是一樣,但是在使用時(shí)發(fā)現(xiàn)有些不一樣。如下面的代碼所示。
當(dāng)僅僅更改a[2][2]的值的時(shí)候,a[k][2] (k取0到9)全部被更改成了4。
其實(shí)這是因?yàn)閇object] * n 的時(shí)候并沒有復(fù)制n-1個(gè)object,而是增加了n-1個(gè)引用。
a = [ [0] * 10] * 10 b = [ [0 for _ in range(10)] for _ in range(10)] a[2][2] = 4 b[2][2] = 4 for i in a: print(i) print("--------") for i in b: print(i) [0, 0, 4, 0, 0, 0, 0, 0, 0, 0] [0, 0, 4, 0, 0, 0, 0, 0, 0, 0] [0, 0, 4, 0, 0, 0, 0, 0, 0, 0] [0, 0, 4, 0, 0, 0, 0, 0, 0, 0] [0, 0, 4, 0, 0, 0, 0, 0, 0, 0] [0, 0, 4, 0, 0, 0, 0, 0, 0, 0] [0, 0, 4, 0, 0, 0, 0, 0, 0, 0] [0, 0, 4, 0, 0, 0, 0, 0, 0, 0] [0, 0, 4, 0, 0, 0, 0, 0, 0, 0] [0, 0, 4, 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, 0, 0] [0, 0, 4, 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, 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, 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, 0, 0]
補(bǔ)充:python 中numpy數(shù)組與數(shù)組使用*相乘的效果
輸入:
import numpy as np b = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]]) a = np.array([150,270,150,270]) b2 = b * a print(b) print(a) print(b2)
輸出:
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
[150 270 150 270]
[[ 150 540 450 1080]
[ 750 1620 1050 2160]
[1350 2700 1650 3240]]
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
matplotlib.pyplot畫圖并導(dǎo)出保存的實(shí)例
今天小編就為大家分享一篇matplotlib.pyplot畫圖并導(dǎo)出保存的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Django把SQLite數(shù)據(jù)庫轉(zhuǎn)換為Mysql數(shù)據(jù)庫的過程
之前我們默認(rèn)使用的是SQLite數(shù)據(jù)庫,我們開發(fā)完成之后,里面有許多數(shù)據(jù),如果我們想轉(zhuǎn)換成Mysql數(shù)據(jù)庫,那我們先得把舊數(shù)據(jù)從SQLite導(dǎo)出,然后再導(dǎo)入到新的Mysql數(shù)據(jù)庫里去,這篇文章主要介紹了Django如何把SQLite數(shù)據(jù)庫轉(zhuǎn)換為Mysql數(shù)據(jù)庫,需要的朋友可以參考下2023-05-05Python使用MySQLdb for Python操作數(shù)據(jù)庫教程
這篇文章主要介紹了Python使用MySQLdb for Python操作數(shù)據(jù)庫教程,詳細(xì)講述了MySQLdb的用法,針對Python操作MySQL數(shù)據(jù)庫程序設(shè)計(jì)具有很好的參考借鑒價(jià)值,需要的朋友可以參考下2014-10-10Python定時(shí)發(fā)送天氣預(yù)報(bào)郵件代碼實(shí)例
這篇文章主要介紹了Python定時(shí)發(fā)送天氣預(yù)報(bào)郵件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09一篇文章帶你了解Python之Selenium自動(dòng)化爬蟲
這篇文章主要為大家詳細(xì)介紹了Python之Selenium自動(dòng)化爬蟲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01