什么是Python中的双星号运算符
双星号/星号(*
)运算符在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}