zip() 函式是 Python 內置函式之一,它可以將多個序列(串列、元組、字典、集合、字串以及 range() 區間構成的串列)“壓縮”成一個 zip 物件,所謂“壓縮”,其實就是將這些序列中對應位置的元素重新組合,生成一個個新的元組,
和 Python 3.x 版本不同,Python 2.x 版本中的 zip() 函式會直接回傳串列,而不是回傳 zip 物件,但是,回傳的串列或者 zip 物件,其包含的元素(都是元組)是相同的,
zip() 函式的語法格式為:
zip(iterable, ...)
其中 iterable,... 表示多個串列、元組、字典、集合、字串,甚至還可以為 range() 區間,
下面程式演示了 zip() 函式的基本用法:
my_list = [11,12,13] my_tuple = (21,22,23) print([x for x in zip(my_list,my_tuple)]) my_dic = {31:2,32:4,33:5} my_set = {41,42,43,44} print([x for x in zip(my_dic)]) my_pychar = "python" my_shechar = "shell" print([x for x in zip(my_pychar,my_shechar)])
程式執行結果為:
[(11, 21), (12, 22), (13, 23)]
[(31,), (32,), (33,)]
[('p', 's'), ('y', 'h'), ('t', 'e'), ('h', 'l'), ('o', 'l')]
如果讀者分析以上的程式和相應的輸出結果不難發現,在使用 zip() 函式“壓縮”多個序列時,它會分別取各序列中第 1 個元素、第 2 個元素、... 第 n 個元素,各自組成新的元組,需要注意的是,當多個序列中元素個數不一致時,會以最短的序列為準進行壓縮,
另外,對于 zip() 函式回傳的 zip 物件,既可以像上面程式那樣,通過遍歷提取其存盤的元組,也可以向下面程式這樣,通過呼叫 list() 函式將 zip() 物件強制轉換成串列:
my_list = [11,12,13] my_tuple = (21,22,23) print(list(zip(my_list,my_tuple)))
程式執行結果為:
[(11, 21), (12, 22), (13, 23)]
結尾福利
這里免費送大家一套2020最新python入門到高級專案實戰視頻教程,點擊這里即可領取!或者加入博主Python交流圈(QQ群:1049600759)免費下載,
本文的文字及圖片來源于網路加上自己的想法,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/235639.html
標籤:Python
上一篇:PHP設計模式之觀察者模式
