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 =
my_set =
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)]如果讀者分析以上的程式和相應的輸出結果不難發現,在使用 zip() 函式「壓縮」多個序列時,它會分別取各序列中第 1 個元素、第 2 個元素、... 第 n 個元素,各自組成新的元組。需要注意的是,當多個序列中元素個數不一致時,會以最短的序列為準進行壓縮。[(31,), (32,), (33,)]
[('p', 's'), ('y', 'h'), ('t', 'e'), ('h', 'l'), ('o', 'l')]
另外,對於 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)]
Python zip函式及用法
zip 函式可以把兩個列表 壓縮 成乙個 zip 物件 可迭代物件 這樣就可以使用乙個迴圈並行遍歷兩個列表。為了測試 zip 函式的功能,我們可以先在互動式直譯器中 試驗 一下該函式的功能。a a b c b 1,2,3 x for x in zip a,b a 1 b 2 c 3 從上面的測試結果...
Python zip 函式的用法
python函式式程式設計之zip zip zip 函式接受0個或多個序列作為引數,返回乙個tuple列表。zip 函式具體的工作機制是,將每個列表中同一位置的元素取出來組成乙個元組,存放到乙個列表中,然後返回這個列表。舉例說明 x 1,2,3 y a b c z 4,5,6 zip xyz zip...
Python zip 函式用法詳解
zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。注 在python3中返回的是zip物件 zip的語法格式 zip iterable,其中 iterable,表示多個列表 元組 字典 集合 字串,甚至還可以為 range 區間。下面演示一下z...