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