Python 有 ,= 操作符?

开发 后端
今天分享一个比较少见的用法,那就是 Python 是有 ,= 这种用法的,至于是它是否称得上操作符,这个不重要。

[[432242]]

今天分享一个比较少见的用法,那就是 Python 是有 ,= 这种用法的,至于是它是否称得上操作符,这个不重要。

咱们先一起回顾一下逗号相关的用法吧:

1,元组的组成部分

没有逗号的括号,构不成元组,哪怕只有一个元素,也需要有逗号。

  1. In [6]: a = (1,) 
  2.  
  3. In [7]: type(a) 
  4. Out[7]: tuple 

2、交换两个变量

  1. In [8]: a = 1 
  2.  
  3. In [9]: b = 2 
  4.  
  5. In [10]: a, b = b, a 
  6.  
  7. In [11]: f"{a = } {b = }" 
  8. Out[11]: 'a = 2 b = 1' 

你想交换三个、四个、多个,也可以这样做。

3、拆解列表,元组,或集合

  1. In [12]: a, b = [1,2] 
  2.  
  3. In [13]: f"{a = } {b = }" 
  4. Out[13]: 'a = 1 b = 2' 
  5.  
  6. In [14]: a, b = (3,4) 
  7.  
  8. In [15]: f"{a = } {b = }" 
  9. Out[15]: 'a = 3 b = 4' 
  10.  
  11. In [17]: a, b = {5,6} 
  12.  
  13. In [18]: f"{a = } {b = }" 
  14. Out[18]: 'a = 5 b = 6' 
  15.  
  16. In [19]: 

4、,= 操作符?

明白了以上操作,现在下面的代码其运行结果是多少呢?

  1. a ,= [2] 
  2. b , = [2] 
  3. c , = (2,) 
  4. d , = {2} 
  5. e ,= range(2,3) 
  6. print(a,b,c,d,e) 

如果你心中有了结果,可以看下是否符合预期:

  1. >>> a,=[2] 
  2. >>> b , = [2] 
  3. >>> c , = (2,) 
  4. >>> d , ={2} 
  5. >>> e ,     = range(2,3) 
  6. >>> print(a,b,c,d,e) 
  7. 2 2 2 2 2 
  8. >>> 

只要可迭代对象内部仅有一个元素,就可以通过 ,= 的形式把这个值取出来,至于逗号和等号是否挨着,倒无所谓。

一句话,,= 就是拆解列表,元组,集合,可迭代对象的特例,要求其只能有一个元素。

 

责任编辑:武晓燕 来源: Python七号
相关推荐

2020-03-03 15:42:33

Python字典合并代码

2010-07-14 14:55:07

Perl操作符

2009-08-19 17:26:28

C# 操作符

2010-02-23 11:18:25

Python 操作符

2009-07-21 09:31:00

Scala操作符

2012-02-06 09:13:23

LINQ

2010-07-14 14:18:51

Perl操作符

2009-09-15 17:16:58

LINQ查询操作符

2009-09-16 09:09:23

Linq Contai

2011-04-08 16:26:14

JavaScript

2010-07-14 14:30:31

Perl操作符

2010-07-19 11:00:24

Perl操作符

2021-10-09 13:48:11

操作符Python运算符

2010-01-28 11:16:28

C++操作符

2022-10-08 07:49:55

New操作符函数

2009-11-27 09:41:56

LINQ

2017-01-03 15:56:20

RxJava操作符Android

2010-01-27 11:00:17

C++操作符

2016-12-28 09:48:09

AndroidRxJava操作符

2016-12-28 09:54:50

AndroidRxJava操作符
点赞
收藏

51CTO技术栈公众号