1. 程式人生 > >python基礎之zip()函式的用法

python基礎之zip()函式的用法

zip函式的用法:
詳情參考:菜鳥教程http://www.runoob.com/python/python-func-zip.html
注意!!!!!!!!!!!!!python2,python3的用法一樣但是返回值不一樣,python2返回的是一個列表,python3返回的是一個物件。

python2:

zip() 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成一個個元組, 然後返回由這些元組組成的列表

如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同, 利用 * 號操作符,可以將元組解壓為列表。

python3:

zip() 函式用於將可迭代的物件作為引數, 將物件中對應的元素打包成一個個元組,然後返回由這些元組組成的物件

這樣做的好處是節約了不少的記憶體。如需展示列表,需手動 list() 轉換。

下面針對python3進行測試:

語法: zip([iterable, ...])

a1 = [1,2,3,4]
b1 = [5,6,7,8]
c1 = [4,5,6,7,8,9,0]

zi = zip(a1,b1)                 #返回一個物件 <zip object at 0x7f71c0062788>

print(zi)

li = list(zi)                   # [(1, 5), (2, 6), (3, 7), (4, 8)]
print(li)

ziac = zip(a1,c1)
print(list(ziac))               # [(1, 4), (2, 5), (3, 6), (4, 7)]


a,b = zip(*li)                  # 與 zip 相反,zip(*) 可理解為解壓

print(list(a))                  # [1, 2, 3, 4]
print(list(b))

ziabc = zip(a1,b1,c1)
print(list(ziabc))              # [(1, 5, 4), (2, 6, 5), (3, 7, 6), (4, 8, 7)]

利用zip()函式完成一個小測試:(一些公司在面試中可能會考察python基礎)

假設有如下兩個 list:a = ['a', 'b', 'c', 'd', 'e'],b = [1, 2, 3, 4, 5],

將 a 中的元素作為 key,b 中元素作為 value,將 a,b 合併為字典。

a = ['a', 'b', 'c', 'd', 'e']
b = [1, 2, 3, 4, 5]
print(dict(zip(a,b)))

是不是很簡單!!!