Python中的星号(*)运算符有什么含义?
Python中的星号(*
)运算符有多个含义。我们可以将其用作乘法运算符、重复运算符,用于解包可迭代对象,并在函数中使用 *args
。
在函数声明中使用单个星号允许传递不确定数量的参数从调用环境传递。在函数内部,它的行为类似于一个元组。
作为乘法运算符
通常,星号(*
)运算符用于乘法运算。对于数值数据,星号(*
)被用作乘法运算符。让我们来看一个例子,看看星号(*
)运算符在数值操作数上的工作方式。
示例
a = 100
b = 29
result = a * b
print("Output: ", result)
输出
Output: 2900
重复操作符
对于列表、字符串和元组等序列,星号操作符可用作重复操作符。
示例
s = "Python"
result = s * 3
print("Output for string sequence: ", result)
l = [1, 'a', 3]
l_result = l * 2
print("Output for list sequence: ", l_result)
t = (1, 2, 3)
t_result = t * 4
print("Output for tuple sequence: ", t_result)
输出
Output for string sequence: PythonPythonPython
Output for list sequence: [1, 'a', 3, 1, 'a', 3]
Output for tuple sequence: (1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)
将可迭代对象解包
在调用函数时,星号运算符可以用作参数来解包参数可迭代对象。
示例
def foo(a, b, c):
return(a, b, c)
l = [1, 2, 3]
print(' ',foo(*l))
输出
(1, 2, 3)
示例
使用起始(*)运算符对列表可迭代进行解包。同样,将可迭代对象如元组和字典作为参数传递时也是如此。
def foo(a, b, c):
return(a, b, c)
t = (1, 4, 6)
print('Output tuple unpacking: ',foo(*t))
d = {'a': 10, 'b': 20, 'c': 30}
print('Output dictionary unpacking: ',foo(*d))
输出
Output tuple unpacking: (1, 4, 6)
Output dictionary unpacking: ('a', 'b', 'c')
元组和字典也可以在调用函数时使用星号 (*) 进行解包。
创建函数 *args(位置参数):
在定义函数时,使用单个星号(*
)将可变数量的参数传递给函数。这实际上是创建一个具有非关键字参数的函数。
示例:
上面的示例被定义为接受任意数量的值,并能够使用 *args
将它们全部相加。
def add_values(*args):
return sum(args)
print(add_values(1, 3, 4, 2))
print(add_values(10, 2, 4, 5, 6, 7, 8, 10))
输出
10
52