159.md 1.1 KB
Newer Older
W
wizardforcel 已提交
1
# Python 解包元组 – 太多值无法解包
W
wizardforcel 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

> 原文: [https://howtodoinjava.com/python/unpack-variable-length-tuple/](https://howtodoinjava.com/python/unpack-variable-length-tuple/)

Python 示例,用于解包元组或序列或可迭代,以便该元组可能长于 N 个元素,从而导致“ **的值太多,无法解包**”异常。

## 1.解开任意长度的元组

**Python“ `star expressions`”可用于解包任意长度的元组。**

```java
>>> employee = ('Lokesh', 'email@example.com', '111-222-333', '444-555-666')

>>> name, email, *phone_numbers = employee

>>> name
'Lokesh'
>>> email
'email@example.com'
>>> phone_numbers
['111-222-333', '444-555-666']

```

```java
>>> *elements, end = [1,2,3,4,5,6,7,8]

>>> elements
[1,2,3,4,5,6,7]

>>> end
8

```

## 2.解压缩元组并丢弃不需要的值

有时,您可能想拆开值并将其丢弃。 解包时,您不仅可以指定裸露的`*`,还可以使用通用的一次性变量名,例如“ _”或忽略。

```java
>>> record = ('Lokesh', 37, 72.45, (1, 1, 1981))

>>> name, *_, (*_, year) = record	#Only read name and year

>>> name
'Lokesh'

>>> year
1981

```

学习愉快!