在 Python 中,*
和 **
是两种特殊的操作符,被称为解包(unpacking)操作符。它们在处理序列(如列表、元组)和字典时非常有用。接下来我会详细解释这两种操作符的用法。
-
*
操作符:- 在函数调用时,可以使用
*
操作符来解包序列。这意味着你可以将一个列表、元组或其他可迭代对象中的元素分别作为参数传递给函数。例如:
python`def func(a, b, c): print(a, b, c) values = [1, 2, 3] func(*values) # 等价于 func(1, 2, 3)`
*
操作符也可以用于列表初始化或合并。你可以使用它来将一个或多个列表、元组或其他可迭代对象中的元素组合到一个新的列表中。例如:
python`# 列表初始化 list1 = [1, 2, 3] list2 = [4, 5, 6] combined = [*list1, *list2] # combined 为 [1, 2, 3, 4, 5, 6] # 合并列表 list3 = [7, 8, 9] combined = [*combined, *list3] # combined 为 [1, 2, 3, 4, 5, 6, 7, 8, 9]`
- 在函数调用时,可以使用
-
**
操作符:**
操作符用于解包字典。在函数调用时,它可以将字典的键值对作为参数传递给函数。例如:
python`def func(a=1, b=2, c=3): print(a, b, c) params = {'a': 4, 'b': 5, 'c': 6} func(**params) # 等价于 func(a=4, b=5, c=6)`
- 在字典合并时,也可以使用
**
操作符。它可以将一个或多个字典的键值对组合到一个新的字典中。例如:
python`dict1 = {'a': 1, 'b': 2} dict2 = {'c': 3, 'd': 4} merged = {**dict1, **dict2} # merged 为 {'a': 1, 'b': 2, 'c': 3, 'd': 4}`
需要注意的是,*
和 **
操作符在 Python 中的用法非常灵活,上述示例只是其中的一部分。这两个操作符在处理序列和字典时非常有用,可以简化代码并提高可读性。