千家信息网

Python数组实践中的问题分析

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,Python数组实践中的问题分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python数组有很多的知识需要大家详细的学习。Pyt
千家信息网最后更新 2025年02月05日Python数组实践中的问题分析

Python数组实践中的问题分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

Python数组有很多的知识需要大家详细的学习。Python数组中没有数组的数据结构,但列表很像数组,如:

a=[0,1,2]这时a[0]=0, a[1]=1, a[[2]=2,但引出一个问题,即如果数组a想定义为0到999怎么办,这时可能通过a = range(0, 1000)实现。或省略为a = range(1000).如果想定义1000长度的a,初始值全为0,则 a = [0 for x in range(0, 1000)]下面是二维数组的定义:

直接定义 a=[[1,1],[1,1]],这里定义了一个2*2的,且初始为0的二维数组。

间接定义 a=[[0 for x in range(10)] for y in range(10)],这里定义了10*10初始为0的二维数组。

后来,我在网上找到了更简单的字义二维数组的方法:

b = [[0]*10]*10,定义10*10初始为0的二维数组。

与 a=[[0 for x in range(10)] for y in range(10)]比较:print a==b的结果为True。

但用b的定义方法代替a后,以前的可以正常运行的程序也出错了,经过仔细分析得出区别:

a[0][0]=1时,只有a[0][0]为1,其他全为0。

b[0][0]=1时,a[0][0],a[1][0],只到a[9,0]全部为1。

由此得到大数组中的10个小的一维数据全是一个相同的引用,即指向同一地址。

故 b = [[0]*10]*10并不符合我们常规意义上的二维数组。

同时经过试验:c=[0]*10的定义与c=[0 for x in range(10)]有同样的效果,而没有上面相同引用的问题,估计Python数组c的定义时是值类型相乘,而前面b的用类型的相乘,因为一维数组是一个引用(借用C#中的值类型和引用类型,不知是否合适)。

关于Python数组实践中的问题分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

数组 问题 二维 分析 类型 方法 实践 相同 数据 更多 知识 一维 帮助 解答 合适 易行 简单易行 内容 只有 同时 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器怎样连接域名 传奇无法修改数据库数据 mc服务器新人教程 中国红客网络安全应急 大数据库安全运算 电视连着网显示无法连接服务器 校园网络安全黑板报文字内容 贵州手机麻将软件开发公司 阿里云香港服务器域名dns 公益广告保护网络安全 永宁县软件开发公司报价多少 黑龙江软件开发外包公司 网络安全法热议 怪物猎人世界天刀服务器 人机工程学数据库技术 云南债权管理软件开发公司 网络安全及防火墙的重要性 信息安全及网络安全具体措施 广州自动点胶软件开发 计算机网络安全威胁定义 软件开发的实训重难点 网络安全法相关的执法案例 曲靖市公安局网络安全管理支队 乌镇互联网大会发布了哪些科技 山东ukey服务器连接异常 网络安全通报预警工作处理 吴兴良网络技术 jsp数据库连接实现登录 上海专业软件开发服务费 陕西千尺软件开发有限公司
0