(声明:本教程仅供本人学习使用,如有人使用该技术触犯法律与本人无关)
(如果有错误,还希望指出。共同进步)
【加深Pthon赋值运算基础】
a = 10
b = 5
a, b = b, a
# a = 5
# b = 10
a = ['a', 'a', 'a']
b = ['b', 'b', 'b']
a, b = b, a
# a = ['b', 'b', 'b']
# b = ['a', 'a', 'a']
a[:2], b[:2] = b[:2], a[:2]
# a = ['b', 'b', 'a']
# b = ['a', 'a', 'b']
# 为什么?
# 因为程序总是先执行完 “ = ” 右边的结果后, 再赋值给左边
a[:2], b[:2] = a, b
# a = ['a', 'a', 'a', 'a']
# b = ['b', 'b', 'b', 'b']
a[:2], b[:2] = b, a
# a = ['b', 'b', 'b', 'a']
# b = ['b', 'b', 'b', 'a', 'b']
## 为什么?????
# 右边运算结束后, 会依次执行左边 (从左向右) 的赋值
# (1) a [:2] = b
# (2) b[:2] = a (此时的a已经赋值完毕, 成为一个新的a)
a[:2], b[:2] = b[:1], a
# a = ['b', 'a']
# b = ['b', 'a', 'b']
a[:2], b[:2] = b[:2], a[:2]
# a = ['b', 'b', 'a']
# b = ['a', 'a', 'b']
a[:2], a[2:], b[:2], b[2:] = b[:2], b[2:], a[:2], a[2:]
# (左1) (左2) (左3) (左4)
# 等价于 #
a, b = b, a
从上述可以看出,程序的执行顺序
1、执行等号右边的截取操作
2、左边第一个元素先截取, 将右边的值赋值
3、左边第二个元素截取, 右边的值赋值
…