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

更新于: 2023年9月9日

19K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告