今天分享一个比较少见的用法,那就是 Python 是有 ,= 这种用法的,至于是它是否称得上操作符,这个不重要。
咱们先一起回顾一下逗号相关的用法吧:
1,元组的组成部分
没有逗号的括号,构不成元组,哪怕只有一个元素,也需要有逗号。
- In[6]:a=(1,)
- In[7]:type(a)
- Out[7]:tuple
2、交换两个变量
- In[8]:a=1
- In[9]:b=2
- In[10]:a,b=b,a
- In[11]:f"{a=}{b=}"
- Out[11]:'a=2b=1'
你想交换三个、四个、多个,也可以这样做。
3、拆解列表,元组,或集合
- In[12]:a,b=[1,2]
- In[13]:f"{a=}{b=}"
- Out[13]:'a=1b=2'
- In[14]:a,b=(3,4)
- In[15]:f"{a=}{b=}"
- Out[15]:'a=3b=4'
- In[17]:a,b={5,6}
- In[18]:f"{a=}{b=}"
- Out[18]:'a=5b=6'
- In[19]:
4、,= 操作符?
明白了以上操作,现在下面的代码其运行结果是多少呢?
- a,=[2]
- b,=[2]
- c,=(2,)
- d,={2}
- e,=range(2,3)
- print(a,b,c,d,e)
如果你心中有了结果,可以看下是否符合预期:
- >>>a,=[2]
- >>>b,=[2]
- >>>c,=(2,)
- >>>d,={2}
- >>>e,=range(2,3)
- >>>print(a,b,c,d,e)
- 22222
- >>>
只要可迭代对象内部仅有一个元素,就可以通过 ,= 的形式把这个值取出来,至于逗号和等号是否挨着,倒无所谓。
一句话,,= 就是拆解列表,元组,集合,可迭代对象的特例,要求其只能有一个元素。
原文链接:https://mp.weixin.qq.com/s/IuhwGGEN0SjTYMtKtCerSQ