python中的zip 函式詳解

2021-08-15 08:08:19 字數 1545 閱讀 2270

一、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)

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

# zip()函式有兩個引數

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])]

3、zip()函式的應用

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]

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

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

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

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

in [26]: print(*zip(m, n))

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

in [27]: m2, n2 = zip(*zip(m,n))

in [28]: m == list(m2) and n == list(n2)

out[28]: true

python中的zip 函式詳解

一 zip iterables 函式詳解 1 zip 函式的定義 從引數中的多個迭代器取元素組合成乙個新的迭代器 返回 乙個zip物件,其內部元素為元組 可以轉化成列表或元組 傳入引數 元組 列表 字典等迭代器 2 zip 函式的用法 當zip 函式中只有乙個引數時,zip iterable 從迭代...

Python中的Zip 函式

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

Python中的zip函式

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