• unpacking 是一种特殊的 Python 语法
    • 只需要一行代码,就能把数据结构里面的多个值分别赋给相应的变量。
  • unpacking 在 Python 中应用广泛,凡是可迭代的对象都能拆分,无论它里面还有多少层迭代结构。
  • 尽量通过 unpacking 来拆解序列之中的数据,而不要通过下标访问

    • 这样可以让代码更简洁、更清晰。

      不可变的 tuple

  • 不可变的序列,经常用索引去获取值,然而因为不可变,会导致被索引的值不可修改。 ```python pair = (‘Chocolate’, ‘Peanut butter’) pair[0] = ‘Honey’

Traceback … TypeError: ‘tuple’ object does not support item assignment ```

多重赋值解包 unpacking

image.png

  • 代码更清晰
  • 用于交换值
    • 下面是冒泡排序:https://visualgo.net/zh/sorting?slide=7 ```python def bubblesort(a): for in range(len(a)): for i in range(1, len(a)):
      1. if a[i] < a[i-1]:
      2. a[i-1], a[i] = a[i], a[i-1] # Swap unpacking

names = [‘pretzels’, ‘carrots’, ‘arugula’, ‘bacon’] bubble_sort(names) print(names)

[‘arugula’, ‘bacon’, ‘carrots’, ‘pretzels’] ```