1、将序列分解为单独的变量
程序员文章站
2022-03-03 16:09:36
...
问题
我们有一个包含N个元素的元组或序列,现在想将它分解为N个单独的变量
解决方案
任何序列(可迭代的对象)都可以通过一个简单的赋值操作来分解为单独的变量。
唯一的要求时变量的总数和结构要与序列相吻合
例如:
p = (4, 5)
x, y = p
print(x) #4
print(y) #5
data = ['BAI', 80, 67.3, (2012,34,456)]
name, shares, price, date = data
print(name) #BAI
print(shares) #80
print(price) #67.3
print(date) #(2012, 34, 456)
如果元素的数量不匹配,将得到一个错误提示:
Traceback (most recent call last):
File "E:/wxerp_api/apps/text.py", line 18, in <module>
name, shares, price = data
ValueError: too many values to unpack (expected 3)
讨论
实际上不仅仅只是元组或列表,只要对象恰好时可迭代的,那么就可以执行分解操作。
这包括字符串、文件、迭代器以及生成器。
比如:
s = "Word"
a, b, c, d = s
print(a) #W
print(b) #o
print(c) #r
print(d) #d
当做分解操作时,有时候可能想丢弃某些特定的值,Python并没有提供特殊的语法来实现这一点,但是通常可以选一个用不到的变量名,以此来作为要丢弃的值的名称。
例如:
data = ['BAI', 80, 67.3, (2012,34,456)]
_, shares, price, _ = data
print(shares) #80
print(price) #67.3
但是请确保选择的变量名没有在其他地方用到过
上一篇: 将序列分解为单独的变量
下一篇: 1.1 序列分解为单独的变量