讨论python中的“*”与*args

本文详细解析了Python中*符号的两重含义:一是作为乘法运算符,二是其在解包和打包操作中的应用。深入探讨了*符号在不同数据结构如字符串、列表、元组、字典和集合上的打散效果,以及如何通过*args和**kwargs在函数调用中灵活处理可变数量的参数。

在python中,*有两个作用:
1.算数运算符乘号
2.解包,打包的功能
具体来说,*的解包打包又可以分为4个方面:
(1).*打散
*接一个字符串,列表,元组,字典,集合时可以将他们打散去括号

a = 'gfdak'
print(*a)#g f d a k

a = (1,2,3,4)
print(*a)#1 2 3 4

b = {"name":'BGWAN','age':13,'sex':'man'}
print(*b)#name age sex

c = [1,2,3,4]
print(*c)#1 2 3 4

d = {1,2,3,4}
print(*d)#1 2 3 4

(2)*agrs列表
*args(前面必须要有一个变量)在接收列表,元组,集合,字典中的元素可以获得一个列表类型的数据:

a,*b={'name':'BGWAN','age':22,'sex':'man'}
print(a,b)#name ['age', 'sex']

c,*d = [1,2,3]
print(c,d)#1 [2, 3]

e,*f = (1,2,3,4,5,6)
print(e,f)#1 [2, 3, 4, 5, 6]

g,*h = {1,2,3,4,5}
print(g,h)#1 [2, 3, 4, 5]

(3).args函数可变参数中的元组参数
一定是要在函数定义时,在形参前添加
,会使接收的实参变成元组参数,*同样具有解压的功能

def shuchu(args):
    print(*args)
shuchu([1,2,3])#1 2 3

def shuchu(*args):
    print(args)#(1, 2, 3)
shuchu(1,2,3)

def shuchu(*args):
    print(args)#((1, 2, 3),)
shuchu((1,2,3))

def shuchu (*args):
    print(args)
print([1,2,3])#[1, 2, 3]

(4).**kwargs字典

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值