码迷,mamicode.com
首页 > 编程语言 > 详细

【python cookbook】【数据结构与算法】2 从任意长度的可迭代对象中分解元素

时间:2016-07-31 19:11:20      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:

从某个可迭代对象中分解出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=(小明,xiaoming@163.com,13288888888,13566666666)
>>> name,email,*phone_numbers=record#*修饰的变量位于列表最后一个位置
>>> name
小明
>>> email
xiaoming@163.com
>>> phone_numbers
[13288888888, 13566666666]

>>> 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】【数据结构与算法】2 从任意长度的可迭代对象中分解元素

标签:

原文地址:http://www.cnblogs.com/apple2016/p/5723615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!