Python中“星号”用法小结

在Python学习中,简单总结一下“*”的多种使用方法。

基本用法

乘法&乘方

用于数学计算

a = 5

# 乘法
print(a*2) # 10

# 乘方
print(a**2) # 25

字符串复制

s = 'abc'

# 复制3次
print(s*3) # abcabcabc

序列解包

x,*y = 1,2,3,4
print(x) # 1
print(y) # [2,3,4],这里y做为一个列表,收集剩余项

x,*y,z = 1,2,3,4
print(x) # 1
print(y) # [2,3],这里y,收集中间两项
print(z) # 4

x,*y,z = 1,4
print(x) # 1
print(y) # [],这里y是一个空的列表
print(z) # 4

在定义函数时,用于参数收集

单个“*” 收集参数,生成一个元组

def foo(*args):
	print(args)
	
foo(1,2,3,4)

# 打印结果,说明args是一个元组
(1, 2, 3, 4)

两个“*” 收集参数,生成一个字典

def bar(**kwargs):
	print(kwargs)
	
bar(x=1,y=2,c=3)

# 打印结果,说明kwargs是一个字典
{'x': 1, 'y': 2, 'c': 3}

注意foo,bar传参时的不同

同时使用“*”和“**”

同时使用要注意先后顺序。

def foo(*args, **kvargs):
	print(args)
	print(kvargs)
	
foo(1,2,3,x=3,y=4,z=[1,2,3])

# 打印结果
# 1,2,3被args收集为元组
(1, 2, 3)
# x,y,z被kvargs收集为字典
{'x': 3, 'y': 4, 'z': [1, 2, 3]}

在调用函数时,用于参数解包

单个“*”用于“分解”元组,列表

a = (111,222)
b = [123,456]

def foo(x,y):
	print(x, y)
	
foo(*a) # 111 222
foo(*b) # 123 456

两个“**”,用于“分解”字典

d = {'x':1,'y':2}
def foo(x,y):
	print(x, y)

foo(**d) # 1 2

小结

  1. “*”和“**”在函数定义时出现,用于收集参数;在函数调用时出现用于分解参数
  2. “*”用于处理元组、列表;“**”用于处理字典(两个星号正好对应字典的key,value)。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值