Code1:
a=0这段代码将陷入死循环,输出如下:
b=6
while b!=a:
a=b
print a
b=b-1
print a
6
6
5
5
4
4
...
Code2:
a=[0]这段代码在第一个循环结束就停了,输出如下:
b=[6]
while b!=a:
a=b
print a
b[0]=b[0]-1
print a
[6]
[5]
这个网站有讨论。 主要原因是,python的list名字其实是一个指针。假设有两个list,分别为a和b,如果赋值a=b,并不是建立一个新的list a,使其内容跟b一样,而是将a和b同时指向一个list对象。
所以,如果有如下两个list:
a=[0,1]
b=[0,1]
# a==b: TRUE
# a is b: FALSE
No comments:
Post a Comment