python基礎之zip()函式的用法
阿新 • • 發佈:2018-12-16
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)))
是不是很簡單!!!