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相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python實現將MySQL數據庫表中的數據導出生成csv格式文件的方法
這篇文章主要介紹了Python實現將MySQL數據庫表中的數據導出生成csv格式文件的方法,涉及Python針對mysql數據庫的連接、查詢、csv格式數據文件的生成等相關操作技巧,需要的朋友可以參考下2018-01-01
Python多線程threading和multiprocessing模塊實例解析
這篇文章主要介紹了Python多線程threading和multiprocessing模塊等相關內容,分享了相關代碼示例,小編覺得還是挺不錯的,這里分享給大家,需要的朋友可以參考下2018-01-01
利用PyInstaller將python程序.py轉為.exe的方法詳解
這篇文章主要給大家介紹了利用PyInstaller將python程序.py轉為.exe的方法,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-05-05

