Python 中的雙星號運算子是什麼意思?
在Python中,雙星號/星號(**)運算子具有多種含義。我們可以將其用作指數運算子,用作函式*kwargs,解包迭代器,以及用於合併字典。
指數運算子
對於數值資料,雙星號 (**) 用作指數運算子。讓我們來看一個例子,看看雙星號運算子如何在數值運算元上工作。
示例
下面的例子使用雙星號/星號 (**) 計算“a 的 b 次方”,其功能等同於pow() 函式。
a = 10 b = 2 result = a ** b print("a**b = ", result)
輸出
a**b = 100
建立帶有 **kwargs 的函式
在定義函式時,雙星號 (**) 用於建立一個具有任意數量關鍵字引數的Python 函式。它只是一個可以接受任意數量關鍵字引數的函式。
示例
上面的例子定義為接受任意數量的關鍵字引數。
def fun(**kwargs): for k, v in kwargs.items(): print('key = {}, value = {}'.format(k,v)) fun(a=10, b=2, c=9, d=3, e=6)
輸出
key = a, value = 10 key = b, value = 2 key = c, value = 9 key = d, value = 3 key = e, value = 6
解包迭代器
呼叫函式時,雙星號/星號 (**) 運算子可以用作引數來解包關鍵字引數。
要從Python 字典中一起解包鍵和值,可以使用雙星號運算子。
示例
使用雙星號 (**) 運算子,我們解包了字典並將鍵值對傳送到一個接受任意數量關鍵字引數的函式。
def foo(**kwargs): for key, value in kwargs.items(): if value > 90: print(str(key) + " " + str(value)) d = {'a': 100, 'b': 20, 'c': 96, 'd':101} foo(**d)
輸出
a 100 c 96 d 101
合併字典
透過使用雙星號/星號運算子,我們可以合併 Python 中的兩個字典。
語法
New_dict = {**dict1, **dict2}
上述語法可以透過解包現有字典的鍵值對來建立一個新字典。如果存在任何重複的鍵,則此方法會自動解決這些問題。
示例
下面的例子演示瞭如何合併字典,字典物件前的雙星號 **dict 可用於解包字典。
d1 = {'A': 10, 'B': 20} d2 = {'C': 30, 'D': 40} print('initial dictionaries d1 = {} and d2 = {}: '.format(d1,d2)) z = {**d1, **d2} print("Merged dictionary: ", z)
輸出
initial dictionaries d1 = {'A': 10, 'B': 20} and d2 = {'C': 30, 'D': 40} Merged dictionary: {'A': 10, 'B': 20, 'C': 30, 'D': 40}
廣告