跟老齐学Python之赋值,简单也不简单(2)
>>> [name,site] = ["qiwsir","qiwsir.github.io"]
>>> name
'qiwsir'
>>> site
'qiwsir.github.io'
>>> name,site = ("qiwsir","qiwsir.github.io")
>>> name
'qiwsir'
>>> site
'qiwsir.github.io'
这样也行呀。
其实,赋值的样式不少,核心就是将变量和某对象对应起来。对象,可以用上面的方式,也许是这样的
>>> site = "qiwsir.github.io"
>>> name, main = site.split(".")[0], site.split(".")[1] #还记得str.split(<sep>)这个东东吗?忘记了,google一下吧。
>>> name
'qiwsir'
>>> main
'github'
增强赋值
这个东西听名字就是比赋值强的。
在python中,将下列的方式称为增强赋值:
| 增强赋值语句 | 等价于语句 |
|---|---|
| x+=y | x = x+y |
| x-=y | x = x-y |
| x*=y | x = x*y |
| x/=y | x = x/y |
其它类似结构:x&=y x|=y x^=y x%=y x>>=y x<<=y x**=y x//=y
看下面的例子,有一个list,想得到另外一个列表,其中每个数比原来list中的大2。可以用下面方式实现:
>>> number
[1, 2, 3, 4, 5]
>>> number2 = []
>>> for i in number:
... i = i+2
... number2.append(i)
...
>>> number2
[3, 4, 5, 6, 7]
如果用上面的增强赋值,i = i+2可以写成 i +=2,试一试吧:
>>> number
[1, 2, 3, 4, 5]
>>> number2 = []
>>> for i in number:
... i +=2
... number2.append(i)
...
>>> number2
[3, 4, 5, 6, 7]
这就是增强赋值。为什么用增强赋值?因为i +=2,比i = i+2计算更快,后者右边还要拷贝一个i。
上面的例子还能修改,别忘记了list解析的强大功能呀。
>>> [i+2 for i in number]
[3, 4, 5, 6, 7]






