一、序列解包
多个赋值操作同时进行:
赋值多个值
后面再遇到对多个变量赋值时,就不需要对一个变量赋完值再对另一个变量赋值了,用一条语句就可以搞定,例如:
再次赋值
由输出结果看到,x和y的值交换了,所以可以交换两个或多个变量的值。
在Python中,交换所做的事情叫作序列解包(sequenceunpacking)或可选迭代解包,即将多个值的序列解开,然后放到变量序列中。可以通过下面的示例理解:
序列解包
由输出结果看到,序列解包后,变量获得了对应的值。再看另一个示例:
字典赋值
由输出结果可知,此处作用于元组,使用popitem方法将键-值作为元组返回,返回的元组可以直接赋值到两个变量中。
序列解包允许函数返回一个以上的值并打包成元组,然后通过一个赋值语句进行访问。这里有一点要注意,解包序列中的元素数量必须和放置在赋值符号“=”左边的数量完全一致,否则Python会在赋值时引发异常,异常原因:当右边的元素数量和左边的变量数量不一致时,执行结果就会报错。错误原因是没有足够的值解包(左边变量多于右边元素)或多个值未解包(左边变量少于右边元素)。二、链式赋值
可以通过多个等式为多个变量赋同一个值,这种方法叫作链式赋值。链式赋值是将同一个值赋给多个变量。例如:
链式赋值
上面的语句效果和下面的语句效果一样:
赋值
既可以使用链式方式赋值,又可以单独赋值,显然链式方法更简洁。三、增量赋值
使用赋值运算符时没有将表达式写成类似x=x+1的形式,而是将表达式放置在赋值运算符(=)的左边(如将x=x+1写成x+=1),这种写法在Python中叫作增量赋值(Augemented Assignment)。这种写法对*(乘)、/(除)、%(取模)等标准运算符都适用,例如:
增量赋值
增量赋值除了适用于数值类型外,还适用于二元运算符的数据类型,例如:
字符串赋值