星号解包 *

15.6 星号解包 *

a, *rest, b = (1, 2, 3, 4, 5) 用 * 收集中间剩余元素,rest 是列表。

函数参数 *args 接收多余位置参数,内部是元组。

合并元组:t3 = t1 + t2;重复:t * 2。

星号解包与合并

# ========================================
# 示例:* 解包
# ========================================
first, *middle, last = (1, 2, 3, 4, 5)
print(first, middle, last)  # 1 [2,3,4] 5

t1 = (1, 2)
t2 = (3, 4)
print(t1 + t2)   # (1, 2, 3, 4)
print(t1 * 3)    # (1, 2, 1, 2, 1, 2)

*args 示意

# ========================================
# 示例:*args 是元组
# ========================================
def show(*args):
    print(type(args), args)

show(1, 2, 3)  # <class 'tuple'> (1, 2, 3)