Python-9-赋值进阶
1.序列解包 同时给多个变量赋值 >>> x, y, z = 1, 2, 3 >>> print(x, y, z) 1 2 3 用这种方式还可以交换两个变量的值 >>> x, y = y, x >>> print(x, y, z) 2 1 3 实际上这里的操作称为序列解包,将一个序列解包,并将得到的值存储到一系列变量中 >>> values = 1, 2, 3 >>> values (1, 2, 3) >>> x, y, z = values >>> x 1 在使用返回序列的函数时有用 >>> scoundrel = {'name': 'Robin', 'girlfriend': 'Marion'} >>> key, value = scoundrel.popitem() >>> key 'girlfriend' >>> value 'Marion 注意左右个数必须相同,否则会报错 >>> x, y, z = 1, 2 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: need more than 2 values to unpack 可使用星号运算符(*)来收集多余的值,这样无需确保值和变量的个数相同: >>> a, b, *rest = [1, 2, 3, 4] >>> rest [3, 4] 还可将带星号的变量放在其他位置。 >>> name = "Albus Percival Wulfric Brian Dumbledore" >>> first, *middle, last = name.split() >>> middle ['Percival', 'Wulfric', 'Brian'] 2.链式赋值 x = y = somefunction() 与以下代码等价 y = somefunction() x = y 与以下代码不等价 x = somefunction() y = somefunction() 3.增强赋值 x = x + 1 等价于 x += 1 适用于所有标准运算符
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

更多精彩