时至而生 – 唯变长存

python的解压序列赋值

2019-04-19
58次浏览

python中任何的序列或者是可迭代对象可以通过一个赋值语句解压并赋值给多个变量,唯一的前提就是变量数量必须和序列元素的数量一致。 

list = ['a', 'a', 'a', 1, 2, 3, 4, 5, ('A', 'B', 'C')]
a, b, c, *m, d = list
print(m)
print(d)

#------------ 结果 ------------
[1, 2, 3, 4, 5]
('A', 'B', 'C')
data = ['ACME', 50, 91.1, (2012, 12, 21)]
name, shares, price, date = data
print(name)
print(date)

#------------ 结果 ------------
ACME
(2012, 12, 21)
data = ['ACME', 50, 91.1, (2012, 12, 21)]
name, shares, price, (year, mon, day) = data
print(year)
print(day)

#------------ 结果 ------------
2012
21

解压赋值也可用在字符串上:

s = 'Hello'
a, b, c, d, e = s
print(a)
print(c)
print(e)

#------------ 结果 ------------
H
l
o

有时可能只想解压一部分,丢弃其他的值。对于这种情况 Python 并没有提供特殊的语法。但可以使用任意变量名去占位,丢掉这些变量就行了。

data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]
_, shares, price, _ = data
print(shares)
print(price)

#------------ 结果 ------------
50
91.1

评论

想说点什么?