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

python中l(wèi)ist*n生成多維數(shù)組與for循環(huán)生成多維數(shù)組的區(qū)別說明

 更新時間:2022年05月13日 09:36:07   作者:shangyj17  
這篇文章主要介紹了python中l(wèi)ist*n生成多維數(shù)組與for循環(huán)生成多維數(shù)組的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

list*n生成多維數(shù)組與for循環(huán)生成多維數(shù)組的區(qū)別

本文主要介紹生成二維數(shù)組的方法,同時解釋使用list * n 方式所存在的問題。

1.從一個問題說起

先看一段代碼:

list0 = [1,2,3]
list1 = [list0] * 3
print('list1 is :',list1)
list1[0][0] = 999
print('new list1 is :',list1)

結(jié)果:

程序希望通過list * n 方式的方式生成一個初始的二維數(shù)組,并對其中部分值進(jìn)行修改,從而產(chǎn)生我們希望得到的數(shù)組。

但是,當(dāng)我們修改[0][0]位置的數(shù)值后,發(fā)現(xiàn)[1][0],[2][0]位置的數(shù)字也變成了999

原因是,當(dāng)我們使用list * n 方式的時候,采用的是淺拷貝,list1[0],list1[1],list1[2]其實(shí)都是list0的淺拷貝。

當(dāng)我們在上面程序中,加入下列代碼:

print('list0 is ',list0)
print(list0 is list1[0])
print(list1[0] is list1[1])

list0的值也隨之改動了,并且,通過程序判定,list0,list1[0],list[1]其實(shí)都是一個列表。

2.正確的方式

list0 = [(i + 1) for i in range(3)]
list2 = [[(i + 1) for i in range(3)] for _ in range(3) ]
print('list2 is :',list2)
list2[0][0] = 999
print('new list2 is :',list2)
 
print('list0 is ',list0)
print(list0 is list2[0])
print(list2[0] is list2[1])

如何動態(tài)生成多維數(shù)組

多維數(shù)組其實(shí)就是多個一維數(shù)組的嵌套,Python中有原生的list,類似一個動態(tài)數(shù)組。

所以動態(tài)生成多維數(shù)組的思想就是在list中動態(tài)嵌套添加list。

下面代碼生成一個一個3×3×2的三維數(shù)組

# coding:utf-8
# 使用Python3中的print函數(shù)
from __future__ import print_function
arr = []
# 基本思想是在list中動態(tài)添加list,每個list可以嵌套,這樣就可以形成多維數(shù)組了
# arr中保存的而是row的集合,row中保存的是col的集合
# 這是一個3×3×2的三維數(shù)組
for i in range(3):
     row = []
     for j in range(3):
         col = []
         col.append(i + j)
         col.append(i * j)
         row.append(col)
     arr.append(row)
print(arr)
print("Output Result:")
for i in range(3):
    for j in range(3):
        for k in range(2):
            print('[', end='')
            print(i, end=', ')
            print(j, end=', ')
            print(k, end='] = ')
            print(arr[i][j][k])

運(yùn)行結(jié)果:

運(yùn)行結(jié)果

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

相關(guān)文章

最新評論