Python 有 ,= 操作符?

上一篇 / 下一篇  2021-11-01 16:27:04

  今天分享一个比较少见的用法,那就是 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 = 2 b = 1' 
  你想交换三个、四个、多个,也可以这样做。
  3、拆解列表,元组,或集合
  In [12]: a, b = [1,2] 
   
  In [13]: f"{a = } {b = }" 
  Out[13]: 'a = 1 b = 2' 
   
  In [14]: a, b = (3,4) 
   
  In [15]: f"{a = } {b = }" 
  Out[15]: 'a = 3 b = 4' 
   
  In [17]: a, b = {5,6} 
   
  In [18]: f"{a = } {b = }" 
  Out[18]: 'a = 5 b = 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) 
  2 2 2 2 2 
  >>> 
  只要可迭代对象内部仅有一个元素,就可以通过 ,= 的形式把这个值取出来,至于逗号和等号是否挨着,倒无所谓。
  一句话,,= 就是拆解列表,元组,集合,可迭代对象的特例,要求其只能有一个元素。

TAG: 软件开发 Python

 

评分:0

我来说两句

Open Toolbar