Python zip函數及用法


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)免費下載。


 

本文的文字及圖片來源於網絡加上自己的想法,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM