博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中修改列表
阅读量:6659 次
发布时间:2019-06-25

本文共 737 字,大约阅读时间需要 2 分钟。

a = [1, 2, 3]def lop(a):    b = [7]    a = b[:]lop(a)print(a)

本希望在lop函数内将b列表的值复制到a列表中,但最后的执行效果a没有改变:

[1, 2, 3][Finished in 0.8s]

这跟python对变量和对象定义的有关,参考

https://www.cnblogs.com/ifantastic/p/3811145.html

在函数lop中,a指向了b的列表,但函数结束后,a仍旧是原来自己的指向列表。

a = [1, 2, 3]def lop(a):    print('函数内列表ID1:' + str(id(a)))    b = [7]    a = b    print('函数内列表ID2:' + str(id(a)))    print(a)    print('函数内列表ID3:' + str(id(a)))print('函数外列表ID1:' + str(id(a)))lop(a)print('函数外列表ID2:' + str(id(a)))print(a)

列表变化:

函数外列表ID1:2241163561864函数内列表ID1:2241163561864函数内列表ID2:2241164455240[7]函数内列表ID3:2241164455240函数外列表ID2:2241163561864[1, 2, 3][Finished in 0.8s]

所以在函数内需要修改列表,不能通过列表复制的方式,只能修改当前列表的值,pop、append、a[0]=2等操作。

转载于:https://www.cnblogs.com/xuzhongjie/p/9754726.html

你可能感兴趣的文章
20145223《信息安全系统设计》 第12周学习总结
查看>>
Xcode开发--运行时runtime
查看>>
HTML中实现一键拨号的功能
查看>>
《深入剖析Tomcat》阅读(二)
查看>>
最短路算法
查看>>
ASP FORM表单提交判断
查看>>
PHP:第三章——PHP中表达式函数和匿名函数
查看>>
JUnit 单元测试的好文
查看>>
Linux环境下MySQL报Table 'xxx' doesn't exist错误解决方法
查看>>
Android IOS WebRTC 音视频开发总结(十)-- webrtc入门002
查看>>
DLC 数制与数制的转换
查看>>
server and client
查看>>
AC日记——曼哈顿交易 洛谷 P3730
查看>>
Installshield获取安装包版本的系统变量是IFX_PRODUCT_VERSION
查看>>
html_select
查看>>
Xcode改成不用MainWindow.xib 和 RootViewController.xib 的方法
查看>>
四:(之三)制作镜像和一些docker命令
查看>>
怎样实现android 返回到上一个Activity并重新执行一次onCreate方法
查看>>
Spring 通过工厂方法(Factory Method)来配置bean
查看>>
Android 资源保护问题——探索
查看>>