python中可迭代对象拆包时、怎么赋值给占位符_Python 解压序列、可迭代对象并赋值给多个变量...

Python数据结构和类型

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

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

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

下面是简单的代码

p = (1,2,3)

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,_ = date

>>>share

20

>>>price

30.11

在测试中发现,输入丢弃变量的_的时候,显示的值是(16,28,99)

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

** 问题**

如果一个可迭代对象的元素个数超过变量个数时,会抛出一个 ValueError 。 那么怎样才能从这个可迭代对象中解压出N个元素出来?

解决方案

Python的星号表达式可以用来解决这个问题

函数参数前面的星号(*)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值