双星号运算符在 Python 中是什么意思?

pythonserver side programmingprogramming

双星号 (*) 运算符在 Python 中有多种含义。我们可以将其用作 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

解包可迭代对象

调用函数时,双星号 (**) 运算符可用作参数来解包 keyword 参数。

要从 Python 字典中解包键和值,我们可以使用双星号运算符。

示例

使用双星号 (**) 运算符,我们解包了字典并将键值对发送到接受任意数量 keyword 参数的函数。

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('初始字典 d1 = {} 和 d2 = {}: '.format(d1,d2))

z = {**d1, **d2}
print("合并字典: ", z)

输出

初始字典 d1 = {'A': 10, 'B': 20} 和 d2 = {'C': 30, 'D': 40}
合并字典: {'A': 10, 'B': 20, 'C': 30, 'D': 40}

相关文章