python中的zip 函式詳解

2021-09-30 16:52:49 字數 1397 閱讀 2449

一、zip(*iterables)函式詳解

1、zip()函式的定義

從引數中的多個迭代器取元素組合成乙個新的迭代器

返回:乙個zip物件,其內部元素為元組;可以轉化成列表或元組

傳入引數:元組、列表、字典等迭代器

2、zip()函式的用法

當zip()函式中只有乙個引數時,zip(iterable)從迭代器中依次取乙個元組,組成乙個元組。

in [1]: list1 = [1, 2, 3, 4]

in [2]: tuple1 = zip(list1)

in [3]: type(tuple1)

out[3]: zip

in [4]: list(tuple1)

out[4]: [(1,), (2,), (3,), (4,)]12

3456

78當zip()函式有兩個引數時,zip(a,b)函式分別從a和b中取乙個元素組成元組,再次將組成的元組組合成乙個新的迭代器。a與b的維數相同時,正常組合對應位置的元素。當a與b行或列數不同時,取兩者中的最小的行列數。

in [5]: m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

in [6]: n = [[1, 1, 1], [2, 2, 3], [3, 3, 3]]

in [7]: p = [[1, 1, 1], [2, 2, 2]]

in [8]: list(zip(m,n))

out[8]: [([1, 2, 3], [1, 1, 1]), ([4, 5, 6], [2, 2, 3]), ([7, 8, 9], [3, 3, 3])]

in [9]: list(zip(m,p))

out[9]: [([1, 2, 3], [1, 1, 1]), ([4, 5, 6], [2, 2, 2])]12

3456

783、zip()函式的應用

矩陣相加減、點乘(也可以用for迴圈+列表推導式實現)

in [10]: m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

in [11]: n = [[1, 1, 1], [2, 2, 3], [3, 3, 3]]

in [13]: [x*y for a, b in zip(m, n) for x, y in zip(a, b)]

out[13]: [1, 2, 3, 8, 10, 18, 21, 24, 27]

in [14]: [x+y for a, b in zip(m, n) for x, y in zip(a, b)]

out[14]: [2, 3, 4, 6, 7, 9, 10, 11, 12]12

3456

789二、*zip(*iterables)函式詳解

*zip()函式是zip()函式的逆過程,將zip物件變成原先組合前的資料。

python中的zip 函式詳解

一 zip iterables 函式詳解 1 zip 函式的定義 2 zip 函式的用法 python 3 zip 函式單個引數 in 1 list1 1,2,3,4 in 2 tuple1 zip list1 in 3 type tuple1 out 3 zip in 4 list tuple1 ...

Python中的Zip 函式

zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 號操作符,可以將元組解壓為列表。zip 語法 zip iterable,引數說明 返回元組列表。以下例項展示了 zip 的使...

Python中的zip函式

定義 zip iterable,zip 是python的乙個內建函式,它接受一系列可迭代的物件作為引數,將物件中對應的元素打包成乙個個tuple 元組 然後返回由這些tuples組成的list 列表 若傳入引數的長度不等,則返回list的長度和引數中長度最短的物件相同。利用 號操作符,可以將list...