对Python3 * 和 ** 运算符详解
在Python3中,*
和**
运算符代表不同的意义。下面我们就来详细讲解这两个运算符。
*运算符
*
运算符在Python中有多种用法,最常见的用法是将它用于序列类型数据的解包操作。
序列解包
如果想要将一个序列类型的数据拆分成多个单独的对象,可以使用*
运算符。
示例代码:
lst = [1, 2, 3, 4, 5]
*a, b, c = lst
print(a) # [1, 2, 3]
print(b) # 4
print(c) # 5
这里*a
表示将a
赋值为序列类型lst
中除了最后两个元素以外的所有元素,即[1, 2, 3]
;b
和c
则分别表示lst
中的最后两个元素4
和5
。
当然,*
运算符除了用于序列解包,还可以用于字符串和字节码串解包。例如:
a, *bc, d = "hello"
print(a) # "h"
print(bc) # ["e", "l", "l"]
print(d) # "o"
可变参数
此外,*
运算符还可以用于定义可变参数函数。在*args
形式参数中,args
前的星号表示将所有的位置参数转化为一个元组。这样在函数内部就可以通过遍历该元组来获取所有的位置参数。
示例代码:
def foo(*args):
for arg in args:
print(arg)
foo(1, 2, 3)
运行结果:
1
2
3
**运算符
**
运算符则表示乘方操作。
示例代码:
a = 2 ** 3
print(a) # 8
**
运算符还可以用于字典的解包。例如:
示例代码:
d1 = {"a": 1, "b": 2}
d2 = {"b": 3, "c": 4}
d3 = {**d1, **d2} # 合并字典d1和d2
print(d3) # {"a": 1, "b": 3, "c": 4}
这里将两个字典d1
和d2
合并成了字典d3
。如果有相同的键,后面字典中的值将会覆盖前面的值。
小结
在Python中,*
和**
运算符的作用及用法如下:
*
运算符:- 序列解包;
-
可变参数函数。
-
**
运算符: - 乘方操作;
- 合并字典。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:对Python3 * 和 ** 运算符详解 - Python技术站