zip函數能夠快速便捷的對多組列表或迭代器進行遍歷重組, 也就是說可以完成簡單的二維數組組成工做.python
樣例代碼: 二維數組組成 # -.- coding:utf-8 -.- __author__ = 'zt' l1 = [1, 2, 3, 4] l2 = [5, 6, 7, 8] l3 = [9, 10, 11, 12] print zip(l1, l2, l3) # python 2 print(list(zip(l1, l2, l3))) # python 3 輸出結果: 這就是一個二維數組 [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)] [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]
如上例子git
樣例代碼: # -.- coding:utf-8 -.- __author__ = 'zt' x = [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)] l1, l2, l3 = zip(*x) print l1 print l2 print l3 輸出結果: (1, 2, 3, 4) (5, 6, 7, 8) (9, 10, 11, 12)
樣例代碼: # -.- coding:utf-8 -.- __author__ = 'zt' l1 = ["姓名", "年齡", "性別", "籍貫", "興趣愛好"] l2 = ["張三", 25, "男", "海南", "LOL"] print dict(zip(l1, l2)) 輸出結果: {'興趣愛好': 'LOL', '年齡': 25, '籍貫': '海南', '姓名': '張三', '性別': '男'}
樣例代碼: # -.- coding:utf-8 -.- __author__ = 'zt' d = {'興趣愛好': 'LOL', '年齡': 25, '籍貫': '海南', '姓名': '張三', '性別': '男'} l1, l2 = list(zip(*d.items())) print "l1", l1 print "l2", l2 輸出結果: l1 ['興趣愛好', '姓名', '性別', '籍貫', '年齡'] l2 ['LOL', '張三', '男', '海南', '25']
1. 若使用zip來生成字典, 那麼列表對象或可迭代對象只能是兩個, 由於字典的每一個元素只有兩個對象(一個是鍵、另一個是值).數組
2. 再寫代碼過程當中由於目前對二維數組處理相對來講比較少, zip內置函數使用很少, 若是之後有大量使用, 再持續補充使用場景.less
# 代碼樣例 # -.- coding:utf-8 -.- __author__ = 'zt' import random import string for useless in range(10): l1 = random.sample(''.join([string.digits, 'abcdef']), 6) l2 = random.sample(''.join([string.digits, 'abcdef']), 6) print ':'.join([''.join(i) for i in list(zip(l1, l2))]) # 輸出結果: d7:0d:23:f5:ec:48 9a:4d:82:3c:5f:29 c8:fe:75:4f:8c:59 1a:ee:b5:3d:69:28 4f:9a:f0:ec:06:db 7a:cd:52:a3:4f:d1 e1:ab:72:9d:09:5e 33:19:4b:0c:d0:95 a7:d5:fc:4f:39:91 1f:c8:fa:31:07:ed