python 中的星号[*]

星号在编程的时候感觉是一个神秘的角色

  • 在正则表达式中堪称万能的通配符可谓造福人类
  • 在c/c++中充当指针难到多少好汉

我一直以为python中没有了指针,星号便没有了神秘的一面。
今天看python代码的时候,发现星号其实并没有让我失望。

  1. 在python中,函数申明的时候:

    参数可以带 一个星号,表示支持不限个数的元组参数

    调用的时候可以任性的 afunc(1,2,3,4,5,…,100000)

    参数可以带 两个星号,表示支持不限个数的字典参数

    调用的时候可以这样 bfunc(a=1,b=2,c=3,…,z=26)

  2. 可以对多元素对象进行展开:

    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
    
  3. 吸收多余的元素

    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
    

参考:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值