python list和数组,python 多维list
本文主要介绍了python中list*n生成多维数组和for循环生成多维数组的区别,有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。
00-1010List * n生成多维数组和for循环生成多维数组的区别1。从一个问题开始2。如何以正确的方式动态生成多维数组下面的代码生成一个332的三维数组。
目录
本文主要介绍二维数组的生成方法,并说明使用list * n模式存在的问题。
list*n生成多维数组与for循环生成多维数组的区别
先看一段代码:
列表0=[1,2,3]
列表1=[列表0] * 3
打印(“列表1是:”,列表1)
列表1[0][0]=999
打印(“新列表1是:”,列表1)
结果:
程序希望以list * n的方式生成一个初始的二维数组,并修改它的一些值,从而生成我们想要的数组。
但是,当我们修改[0][0]的值时,我们发现[1][0],[2][0]的个数也变成了999。
原因是当我们使用list * n方法时,我们使用的是浅层拷贝。list1[0]、list1[1]和list1[2]实际上是list0的浅层副本。
当我们在上面的程序中,添加下面的代码:
打印(列表0是,列表0)
打印(列表0是列表1[0])
打印(列表1[0]是列表1[1])
list0的值也是变化的,通过程序判断,list 0,list 1 [0]和list [1]其实是一个列表。
1.从一个问题说起
list0=[(i 1) for i in range(3)]
list 2=[[(I 1)for I in range(3)]for _ in range(3)]
打印(“列表2是:”,列表2)
list2[0][0]=999
打印(“新列表2是:”,列表2)
打印(列表0是,列表0)
打印(列表0是列表2[0])
打印(列表2[0]是列表2[1])
2.正确的方式
多维数组实际上是多个一维数组的嵌套。Python中有一个原生列表,类似于动态数组。
所以动态生成多维数组的思路就是在列表中动态嵌套和添加列表。
如何动态生成多维数组
#编码:utf-8
#使用Python3中的打印功能
从__future__导入print_function
arr=[]
#基本思想是动态添加列表到列表中,每个列表都可以嵌套,这样就可以形成一个多维数组。
#行的集合保存在arr中,列的集合保存在row中
#这是一个332的三维阵列
对于范围(3):中的I
row=[]
对于范围(3):中的j
col=[]
列追加(i j)
列追加(i * j)
row.append(列)
数组追加(行)
打印(排列)
打印(“输出结果:”)
对于范围(3):中的I
对于范围(3):中的j
对于范围(2):中的k
打印([,end= )
print(i,end=,)
print(j,end=,)
print(k,end=]=)
打印(arr[i][j][k])
运行结果:
以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。