Python3 物件組合zip()和回退方式*zip詳解
zip即將多個可迭代物件組合為一個可迭代的物件,每次組合時都取出對應順序的物件元素組合為元組,直到最少的物件中元素全部被組合,剩餘的其他物件中未被組合的元素將被捨棄。
keys = ['one', 'two', 'three'] values = [1, 2, 3] d = zip(keys, values) print(list(d)) 複製程式碼
示例結果:
[('one', 1), ('two', 2), ('three', 3)] 複製程式碼
可以看到我們由zip
模擬了一個類似字典的一一對應的元組迭代物件,並將其轉化為list
型別檢視,當然我們可以利用獲取迭代物件生成真正的鍵值字典:
keys = ['one', 'two', 'three'] values = [1, 2, 3] d = zip(keys, values) D = {} for key, value in d: print(key, value) D[key] = value print(D) 複製程式碼
示例結果:
one 1 two 2 three 3 {'one': 1, 'two': 2, 'three': 3} 複製程式碼
我們可以利用for迴圈迭代賦值給字典完成對應的鍵值對映,在Python3中我們還可以用一句話就可以完成D = dict(zip(keys,values))
.
*zip
當我們想回退為迭代器組合之前的狀態時,我們可以利用*
“解壓”現在“壓縮”過的新的迭代物件
keys = ['one', 'two', 'three', 'four'] values = [1, 2, 3] d = zip(keys, values) older = zip(*d) print(list(older)) 複製程式碼
“解壓”結果:
[('one', 'two', 'three'), (1, 2, 3)] 複製程式碼