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

  

 

posted @   arun_python  阅读(222)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示