008_python列表的传值与传址
一、
今天发现一个奇怪的现象,代码如下:
1 2 3 4 5 6 7 8 | aList = [ 'xyz' , 'zara' , 'abc' , 'xyz' , 'xysdfji' , 'xywooudd' ] for x in aList: if x.startswith( 'xy' ): aList.remove(x) print "List : " , aList 输出如下 = >发现没有最后一个元素也是以xy开头,但是没有删除掉 List : [ 'zara' , 'abc' , 'xysdfji' ] |
二、换成如下的就可以了
1 2 3 4 5 6 | aList = [ 'xyz' , 'zara' , 'abc' , 'xyz' , 'xysdfji' , 'xywooudd' ] for x in aList[:]: if x.startswith( 'xy' ): aList.remove(x) print "List : " , aList输出如下 = >发现没有最后一个元素也是以xy开头,但是没有删除掉 List : [ 'zara' , 'abc' ] |
三、比较它们两个的区别
1 2 3 4 5 6 7 8 9 | aList = [ 'xyz' , 'zara' , 'abc' , 'xyz' , 'xysdfji' , 'xywooudd' ] print id (aList) print id (aList[:]) print "------------" for y in aList: print y print "----------" for x in aList[:]: print |
输出如下=>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 4534445984 4534446200 - - - - - - - - - - - - xyz zara abc xyz xysdfji xywooudd - - - - - - - - - - xyz zara abc xyz xysdfji xywooudd |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步