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+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告