Python中的星号(*)运算符有什么含义?

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程