Python数据结构和类型--解压序列赋值多个变量

Python数据结构和类型

1.1 解压序列赋值给多个变量

现在有一个包含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

在测试中发现,输入丢弃变量的* _ *的时候,显示的值是(16,28,99),这里的原理不清楚,

经过园有的评论知道,_ 已经被最后一个值(16,28,99) 重新赋值了

1.2 解压可迭代对象赋值给多个变量

原文地址:https://www.cnblogs.com/Python666/p/6637502.html