太原信息港,星光大道 李娜,映山红社区
a = 1 b = a print(id(a),id(b)) #140723344823328 140723344823328
a = a + 1 print(b) #1
l1 = [1, 2, 3] l2 = l1 l1.append(4) print(l1) #[1, 2, 3, 4] print(l2) #[1, 2, 3, 4]
由于l1是可变类型,因此l1.append(4)不会创建新对象,会在原列表中插入4,而l1与l2都是指向这个列表,所以值都为[1,2,3,4]
l = [1, 2, 3] del l #l被删除,对象[1,2,3]仍然存在
1)
def my_func1(b): b = 2 a = 1 my_func1(a) print(a) #1
这里参数传递后 b与a 同时指向 值为1这个对象,接着b=2,系统建立2这个对象,并把b指向2,因此a还是指向值为1的对象
2) return让 a 指向 b指向的 值为2的对象def my_func2(b): b = 2 return b a = 1 a = my_func2(a) print(a) #2
3)
def my_func3(l2): l2.append(4) l1 = [1, 2, 3] my_func3(l1) print(l1) #[1, 2, 3, 4]
def my_func4(l2): l2 = l2 + [4] l1 = [1, 2, 3] my_func4(l1) print(l1)#[1, 2, 3]
l2=l2+[4] 会创建一个新的列表对象[1,2,3,4]并把l2指向这个新对象,因此l1不会受影响
def my_func5(l2): l2 = l2 + [4] return l2 l1 = [1, 2, 3] l1 = my_func5(l1) print(l1) #[1, 2, 3, 4]
第3)与第5的作用是一样的,但实际中一般会使用return语句,语义会更加清晰
极客时间 《python核心技术与实战》专栏
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
python求numpy中array按列非零元素的平均值案例
网友评论