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