问题
我们有一个包含N个元素的元组或序列,现在想将它分解为N个单独的变量。
解决方案
任何序列(或可迭代对象)都可以通过一个简单的赋值操作来分解为单独的变量。唯一的要求是变量的总数和结构要与序列相吻合。例如:
无需显示引入第三个变量名,即可交换两个变量的值:
如果元素数量不匹配,将得到一个错误提示。例如:
讨论
实际上不仅仅只是元组或列表,只要对象恰好是可迭代的,那么就可以执行分解操作。这包括字符串、字节、集合、字典、文件、迭代器以及生成器。比如:
当做分解操作时,有时候可能想丢弃某些特定的值。Python并没有提供特殊的语法来实现这一点,但是通常可以选一个用不到的变量名(通常选下划线_
),以此来作为要丢弃的值的名称。
例如:
无论如何请确保选择的变量名没有在其他的地方用到过。