再看python基础的发现个问题,有一个list a=[1,2,3,4,5],赋值给b,b=a和另外一种b=a[:],
a=[1,2,3,4,5]
b=a
b=a[:]
结果都是b[1,2,3,4,5],
这两种赋值结果看起来都是一样的,但是他们有什么区别么?
再看python基础的发现个问题,有一个list a=[1,2,3,4,5],赋值给b,b=a和另外一种b=a[:],
a=[1,2,3,4,5]
b=a
b=a[:]
结果都是b[1,2,3,4,5],
这两种赋值结果看起来都是一样的,但是他们有什么区别么?
Python有个叫做id的函数能够得到对象的地址,你打印出来看看就清楚了。直接=是引用赋值,引用原来的对象;而[:]是重新推导,会生成新的对象
a=[1,2,3,4,5]
b=a
c=a[:]
print id(a),id(b),id(c)
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
你调用下
就看出区别了:
前者传递引用
后者是拷贝