在Python中,星号(*)有以下几种作用:
1、解包操作
在函数调用时,星号可以用来对序列或可迭代对象进行解包,将其元素作为单独的参数传递给函数。例如:
```
def func(a, b, c):
print(a, b, c)
lst = [1, 2, 3]
func(*lst) # 等价于func(1, 2, 3)
```
2、打包操作
在函数定义时,星号可以用来接收任意数量的位置参数或关键字参数,并将其打包为一个元组或字典。例如:
```
def func(*args):
print(args)
func(1, 2, 3) # 输出(1, 2, 3)
def func(**kwargs):
print(kwargs)
func(a=1, b=2, c=3) # 输出{'a': 1, 'b': 2, 'c': 3}
```
3、用作占位符
在元组、列表或字典中,星号可以用作占位符,表示任意数量的元素或键值对。例如:
```
lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
merged_lst = [*lst1, *lst2] # 等价于merged_lst = [1, 2, 3, 4, 5, 6]
dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merged_dict = {**dict1, **dict2} # 等价于merged_dict = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
```