任意长度的python列表_Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作实例...

此文实例介绍了python从任意长度的可迭代对象中分解元素操作。推荐给大伙学习一下,内容如下:

从某个可迭代对象中分解出N个元素,但是可迭代对象的长度可能超过N,会出现“分解值过多”的异常;

使用“*表达式”来解决该问题:

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32

Type "copyright", "credits" or "license()" for more information.

>>> *headdata,current=[10,3,2,6,8,5] #*修饰的变量位于列表第一个位置,轻松分别头部和尾部

>>> headdata

[10, 3, 2, 6, 8]

>>> current

5

>>> record=('dave','dave@example.com','773-555-1212','847-555-1212')

>>> name,email,*phone_numbers=record#*修饰的变量位于列表最后一个位置

>>> name

'dave'

>>> email

'dave@example.com'

>>> phone_numbers

['773-555-1212', '847-555-1212']

>>> line='nobody:*:-2:-3:Unpriviledged User:/var/empty:/usr/bin/false'

>>> uname,*fields,homedir,sh=line.split(':') #*修饰的变量位于中间位置,且与字符串处理操作相结合

>>> uname

'nobody'

>>> homedir

'/var/empty'

>>> sh

'/usr/bin/false'

>>> fields

['*', '-2', '-3', 'Unpriviledged User']

>>> record=['lucy',50,123.4,(12,13,2016)]

>>> name,*_,(*_,year)=record #将某些分解出的值丢弃

>>> name

'lucy'

>>> year

2016

>>>

*式用法在迭代一个变长的元组序列时尤其有用:

(代码摘自《Python Cookbook》)

希望这篇文章对大家Python程序设计能有帮助。

本文来源:http://www.cnblogs.com/apple2016/p/5723615.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值