Python中用[[v]*n]*n要注意什么
Admin 2022-09-01 群英技术资讯 1275 次浏览
今天这篇我们来学习和了解“Python中用[[v]*n]*n要注意什么”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“Python中用[[v]*n]*n要注意什么”有一定的帮助。有这方面学习需要的朋友就继续往下看吧!今天通过[[v]*n]*n快速创建列表, 当我使用索引修改值时, 本来是打算修改a[0][0]这一个元素的第一个值, 但是打印结果却将三个元素第一值都修改了,所以就记录一下!
>> data = [[0] *3] *3 >> data [[0, 0, 0], [0, 0, 0], [0, 0, 0]] >> data[0][0] = 1 >> data [[1, 0, 0], [1, 0, 0], [1, 0, 0]]
>> id(data[0]) 836879108296 >> id(data[1]) 836879108296 >> id(data[2]) # 可以发现,三个元素使用的是同一个内存地址编号 836879108296 # 推荐使用这种方法或者使用列表推导式 >> data2 = [[1,2,3],[4,5,6],[7,8,9]] >> id(data2[0]) 836879107208 >> id(data2[1]) 836879108552 >> id(data2[2]) 836879109960 # 使用列表推导式 >> data3 = [[1,2] for i in range(10)] >> data3[0][0] = 100 [[100, 2], # 只是修改了第一个元素的第一个值 [1, 2], ... [1, 2]] # 查看内存地址 >> id(data3[0]) 836879107528 >> id(data3[1]) 836848339912
方式1:(有问题)
data = [[0]*3]*4 #4行3列 data
输出
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
修改data[0][0]元素的值
data[0][0] = 1 data
输出
[[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]
哇,是不是对结果很迷,为啥改变一个值会对列为0的所有元素改变呢?
解析:我们可以看下他们对应的内存指向地址

问题出在这里了。
方式2:
#输入 data1 = [[0 for i in range(3)] for j in range(4)] data1 # 输出 [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] #输入 data1[0][0] = 1 data1 #输出 [[1, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。浮点型、复数类型、布尔型(布尔型就是只有两个值的整型)、这几种数字类型。列表、元组、字符串都是序列。
这篇文章给大家分享的是python中sys模块的使用,对大家学习和理解python有一定的帮助,因此分享给大家做个参考,文中sys模块的使用示例介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
这篇文章主要介绍了python 基础绘图之关于随时间序列变动的图的画法,首先大家要明白画图需要考虑的问题,如何在图中适当的显示轴标签的样式和数量,详细代码跟随小编一起看看吧
这篇文章主要为大家介绍了python数据可视化绘制火山图示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
内容介绍XKCDmatplotlib对XKCD风格的支持创建XKCD风格的图表使用中文字体创建XKCD风格的图表1.安装字体2.更新中文字体XKCDxkcd是兰道尔门罗(Randall
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008