目录
- 问题
- 解决方案
- 讨论
问题
将一个包含 N N N 个元素的元组或者序列,现在想将其分解为 N N N 个单独的变量。
解决方案
任何序列都可以通过简单的赋值操作分解为单独的变量:
p = (4, 5)
x, y = p
print("x=", x)
print("y=", y)
唯一的要求是需要变量的总数和结构要与序列相吻合。
data = ['ACME', 50, 91.1, (2012, 12, 21)]
name, shares, price, date = data
print("name is", name)
print("holding", shares, "shares")
print("each share worth", price, "dollars")
print("which from date", date)
data = ['ACME', 50, 91.1, (2012, 12, 21)]
name, shares, price, (year, month, day) = data
print("name is", name)
print("holding", shares, "shares")
print("each share worth", price, "dollars")
print("which from ", month, str(day) + "th,", year)
讨论
然而实际上不仅仅是元组或者列表,只要对象恰好是可以迭代的,那么就可以执行分解操作。
str = "Hello"
a, b, c, d, e = str
print("c=", c)
且在做分解操作时,有时候想要丢弃某些特定的值,可以通过一个用不到的变量名作为丢弃的值的名称,例如:
data = ["ACME", 50, 91.1, (2012, 12, 21)]
_, shares, price, _ = data
print("shares=", shares)