在我们使用Python的过程中, 经常遇到赋值语句, 就像下面的那样:
a = 3
b = 3
可能你会觉得我又要说什么变量赋值就是引用, 这么简单的知识就不讨论啦, 相信聪明的大家肯定都知道的, 我想讲的是链式赋值...先科普下什么是链式赋值:
链式赋值: 同时对几个变量进行赋值
例如:
a = b = c = 3
好了, 现在正式进入正题:
>>> s = [1, 2, 3, 4, 5, 6]
>>> i = 0...所以看到这, 相信大家都能清楚, 为什么结果是 [1, 2, 3, 3, 5, 6]
这跟我们想象中的链式赋值很不同, 我们以前总是觉得, 赋值要从右到左依次执行, 先执行 s[i] = 3, 再执行...它会返回赋值的结果3, 所以在它们的链式赋值中, 是将右边表达式的返回值, 再赋值给左边的, 例如:
a = s = 3
等价于:
a = (s = 3)
也就是 s=3 返回3, 再赋值给a
而在python...是不支持这种表达式赋值的, 也就是表达式是没有返回值的, 如果硬要a = (s = 3)只会触发SyntaxError: invalid syntax
希望大家以后在用到这种链式赋值时, 尽量避免这些问题哦