【Python 必會技巧】使用 zip() 函數對序列進行壓縮和解壓操作

zip() 函數用於將可迭代的對象作爲參數,將對象中對應的元素打包成一個個元組,然後返回由這些元組組成的列表。

如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同。

利用 * 號操作符,可以將元組解壓爲列表。

zip() 函數基本語法:zip([iterable, ...]),iterable 表示一個或多個迭代對象,可以是字符串,列表,元組或字典。

應用舉例:

>>> a = [1, 2, 3, 4, 5]     # 在列表中的應用
>>> b = [3, 4, 5, 6, 7]
>>> c = [5, 6, 7, 8, 9]
>>> zipped = zip(a, b, c)
>>> zipped
<zip object at 0x0000018AA4DCFF08>     # 返回一個 zip 對象
>>> list(zipped)
[(1, 3, 5), (2, 4, 6), (3, 5, 7), (4, 6, 8), (5, 7, 9)]    # 使用 list() 函數將其轉換爲列表

>>> z = zip(*zip(a, b, c))     # 解壓操作
>>> z
<zip object at 0x0000018AA4DD50C8>
>>> list(z)
[(1, 2, 3, 4, 5), (3, 4, 5, 6, 7), (5, 6, 7, 8, 9)]
>>> a = {'a':1, 'b':2, 'c':3}     # 在字典中的應用
>>> b = {'d':4, 'e':5, 'f':6}
>>> c = {'g':7, 'h':8, 'i':9}
>>> zipped = zip(a, b, c)
>>> list(zipped)
[('a', 'd', 'g'), ('b', 'e', 'h'), ('c', 'f', 'i')]

>>> z = zip(*zip(a, b, c))
>>> list(z)
[('a', 'b', 'c'), ('d', 'e', 'f'), ('g', 'h', 'i')]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章