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
廣告