### 问题:
现在有一个包含 N 个元素的元祖或者是序列,怎样将它里面的值解压后同时赋值给N个变量。
*****
### 解决方案:
任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量。唯一的前提就是变量的数量必须跟序列元素的数量是一致的。
*****
##### 例:解包元祖
```Python
p = (4,5)
x,y = p
print(x,y) # 4 5
```
**如果变量个数和序列元素的个数不匹配,会产生一个异常**
示例:
```Python
p = (4, 5)
x, y,z = p
print(x, y,z)
ValueError: not enough values to unpack (expected 3, got 2)
```
**这种解压赋值可以用在任何可迭代对象上面,而不仅仅是列表或者元祖。包括字符串,文件对象,迭代器,生成器**
示例:
```Python
p = 'hello'
a, b, c, d, f = p
print(a, b, c, d, f) # h e l l o
```
*****
**有时候,你可能只想解压一部分,丢弃其他的值。对于这种情况 Python 并没有提供特殊的语法。但是你可以使用任意变量名去占位,到时候丢掉这些变量就行了。**
```
data = ['hello', 10, 50, 90.1, (2019, 10, 10)]
_, a, b, _, d = data
print(a) # 10
print(b) # 50
print(d) # (2019, 10, 10)
```
> **这里使用 _ 去占用丢弃的值的位置。可以使用任意变量名去占位,但是必须保证选用的占位变量在其他地方没被使用到,**
原文来自:http://python3-cookbook.readthedocs.io/zh_CN/latest/c01/p01_unpack_sequence_into_separate_variables.html
**如果解压不确定个数或任意个数元素,那该如何呢?且看下一章**