解压序列

# 解压序列
现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量?

解决思路:先通过简单的解压赋值给多个变量,前提是变量的数量和序列元素的数量是一致的

下面是简单的代码

p = (1,2,3)   # 这里的p是一个元组tuple
x,y,y = p
>>>x ---1
>>>y---2
>>>z---3

**代码实现1**
data = [ 'ABC',20,30.11,(16,28,99) ]   # data中的元素有4个
name,share,price,hello = data     # 赋值

>>>name
'ABC'

>>>share
20

>>>price
30.11

>>>date
(16,28,39)

**代码实现2**

data = [ 'ABC',20,30.11,(16,28,99) ]   

name,share,price,(one,two,three)= data 

>>>name 
'ABC'

>>>one

16

>>>two
28

>>>three
99
如果变量个数和元素的个数不匹配,就会出现错误


>>>p = ( 4,5)
x,y,z = p    #变量的个数超过元素的个数

ValueError: not enough values to unpack (expected 3, got 2) 
这种解压赋值适合任何迭代对象,字符串,。。。。

>>> a,b,c,d,e = p
>>> a
'h'
>>> b
'e'
>>> c
'l'
>>> d
'l'
>>> e
'o'
>>>
如果想要解压一部分,丢弃其他值,只需要通过任意变量进行占位,最后将这些变量丢弃即可

data = [ 'ABC',20,30.11,(16,28,99) ] 
_,share,price,_ = data
>>>share
20
>>>price
30.11
原文地址:https://www.cnblogs.com/dangrui0725/p/9428063.html