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

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

依次解压元素

首先,序列肯定是可迭代对象。
任何的可迭代对象可以通过一个简单的赋值语句解压并赋值给多个变量。唯一的前提就是变量的数量与可迭代对象的数量是一样的。

>>> p = (4, 5)
>>> x, y = p 
>>> x
4
>>> y 
5
>>> data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]
>>> name, shares, price, date = data
>>> name
'ACME'
>>> date
(2012, 12, 21)
>>> name, shares, price, (year, mon, day) = data
>>> s = 'Hello'
>>> a, b, c, d, e = s 
>>> a
'H'
>>> b
'e'

若只想取一部分值,可以使用任意变量名去占位。

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

解压N个元素

使用星号表达式例子:

def drop_first_last(grades):
	 first, *middle, last = grades 
	 return avg(middle)
//去掉一个最高分去掉一个叫最低分,求平均值

星号表达式还可以实现数据结构里学到的那种取head,tail的功能

def get_head(list):
    head, *tail = list
    return head

def get_tail(list):
    head, *tail = list
    return tail

星号解压语法在字符串操作的时候也会很有用,比如字符串的分割。

line = 'nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false'
user_name, *fields, homedir, sh = line.split(':')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值