星号在编程的时候感觉是一个神秘的角色
- 在正则表达式中堪称万能的通配符可谓造福人类
- 在c/c++中充当指针难到多少好汉
我一直以为python中没有了指针,星号便没有了神秘的一面。
今天看python代码的时候,发现星号其实并没有让我失望。
-
在python中,函数申明的时候:
参数可以带 一个星号,表示支持不限个数的元组参数
调用的时候可以任性的 afunc(1,2,3,4,5,…,100000)
参数可以带 两个星号,表示支持不限个数的字典参数
调用的时候可以这样 bfunc(a=1,b=2,c=3,…,z=26)
-
可以对多元素对象进行展开:
In [19]: print(*range(5)) 0 1 2 3 4 In [20]: a = *range(5), # 末尾的逗号将展开的值转换为元组,如果没有逗号就会报错 In [21]: a Out[21]: (0, 1, 2, 3, 4) In [22]: print(*range(5),) 0 1 2 3 4 In [23]: print(*(1,2,3,4)) 1 2 3 4
-
吸收多余的元素
In [3]: a,*b,c=range(5) In [4]: a Out[4]: 0 In [5]: b #*b吸收了多余元素 Out[5]: [1, 2, 3] In [6]: c Out[6]: 4
参考: