国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

python中數(shù)組與多維數(shù)組用法介紹

2019-11-14 17:34:03
字體:
供稿:網(wǎng)友

增加時(shí)a.append( 'a ')就可以了。只要按順序加,就沒有問題 。
使用時(shí),完全可以使用下標(biāo):

代碼如下 復(fù)制代碼
a[0]
a[1]

但出果引用不存在的下標(biāo),則會引發(fā)異常。這時(shí),你需要先添加元素,再引用就沒有問題 了。如果想預(yù)先保留空間,可以使用循環(huán)來給list,每個元素一個缺省值,再引用就不會有問題 了。
如:

代碼如下 復(fù)制代碼
a=[]
for i in range(100):
a.append([])
for j in range(100):
a[i].append(0)

這樣就生成了一個100*100缺省值為0的數(shù)組。


#創(chuàng)建一個寬度為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)整個第二列都被賦值,變成

[[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個list的淺拷貝的連接

例:

代碼如下 復(fù)制代碼
>>> lists = [[]] * 3
>>> lists
[[], [], []]
>>> lists[0].append(3)
>>> lists
[[3], [3], [3]][[]]

是一個含有一個空列表元素的列表,所以[[]]*3表示3個指向這個空列表元素的引用,修改任何

一個元素都會改變整個列表:

所以需要用另外一種方式進(jìn)行創(chuàng)建多維數(shù)組,以免淺拷貝:

代碼如下 復(fù)制代碼
>>> lists = [[] for i in ra(www.111cn.net)nge(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)]

比如, 要動態(tài)創(chuàng)建一個 二維數(shù)組:

代碼如下 復(fù)制代碼
int** pTwoDimArr = new int[10][20];
pTwoDimArr[0][0] = 5;

這樣好像很直觀,不過,編譯會出錯:

代碼如下 復(fù)制代碼
cannot convert from 'int (*)[20] ' to 'int ** '


如果這樣:

代碼如下 復(fù)制代碼
int pTwoDimArr[10][20];
pTwoDimArr[0][0] = 5;

是可以的,但是 這個數(shù)組的內(nèi)存卻是在棧上分配的,所以,

代碼如下 復(fù)制代碼
void main(){
int pTwoDimArr[1000][1000];
}

編譯沒問題,運(yùn)行就會死掉

作為全局變量是可以的,但最好杜絕吧

代碼如下 復(fù)制代碼
int pTwoDimArr[1000][1000];
void main(){
}


這樣:

代碼如下 復(fù)制代碼
int (*pTwoDimArr)[1000] = new int[1000][1000];
pTwoDimArr[0][0] = 5;

動態(tài)分配是可以的, 一來記得釋放內(nèi)存,二來維數(shù)還是要固定的(第一維可變),是不是有些不爽

因?yàn)? C++ 是“靜態(tài)”語言, 在編譯期要確定好一切,所以在多維數(shù)組的定義時(shí)除了第一維可變外,其他幾維都要固定為常數(shù),因?yàn)閿?shù)組在內(nèi)存中是線性存儲的。
from:http://www.111cn.net/phper/python/41780.htm


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 梁河县| 鄂尔多斯市| 东港市| 泰顺县| 达日县| 忻州市| 彩票| 临邑县| 应城市| 淮南市| 微山县| 锡林浩特市| 合江县| 山阳县| 达拉特旗| 来宾市| 星子县| 云和县| 和静县| 东兰县| 多伦县| 昭平县| 措勤县| 胶州市| 延寿县| 冕宁县| 营口市| 温州市| 彰武县| 泽库县| 石泉县| 龙州县| 郧西县| 克什克腾旗| 林芝县| 阜平县| 鄂尔多斯市| 敦煌市| 海晏县| 新河县| 太保市|