欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

但是请确保选择的变量名没有在其他地方用到过