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}
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP