Python 交叉赋值 r囧r小猫 2023-07-20 08:22 2阅读 0赞 ### Python 交叉赋值 ### * * 两个变量之间的赋值 * 两个列表赋值 * * 那部分赋值呢? * 部分修改为整体?可行? * a, b 位置互换后成立吗? * 证明例子一 * 证明例子二 * 总结分析 -------------------- ***(声明:本教程仅供本人学习使用,如有人使用该技术触犯法律与本人无关) (如果有错误,还希望指出。共同进步)*** -------------------- 【**加深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, 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、左边第二个元素截取, 右边的值赋值 …
还没有评论,来说两句吧...