Python教程:zip 函数的用法
生活随笔
收集整理的這篇文章主要介紹了
Python教程:zip 函数的用法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
zip() 接受一系列可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個 tuple,然后返回由這些 tuple 組成的 list。
若傳入?yún)?shù)的長度不等,則返回 list 的長度和參數(shù)中長度最短的對象相同。
利用 * 號操作符,可以將 list 解壓。
Python3.0開始,zip()函數(shù)已經(jīng)不返回 list 了,而是返回 iterable(可迭代對象)。這個可迭代對象需要特別注意,只能進(jìn)行一次迭代遍歷,第二次遍歷就是空了。這個坑了我一個多小時。
簡單示例
a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9, 10, 11]ab = zip(a, b) print(list(ab)) # [(1, 4), (2, 5), (3, 6)] # zip()之后的結(jié)果只能“使用一次” # zip()實際上是一個生成器對象,故使用list()獲取zip()結(jié)果時,已經(jīng)相當(dāng)于是完成一次迭代遍歷 # 第二次再次使用list()時迭代已經(jīng)結(jié)束,所以返回[] print(list(ab)) # []ac = zip(a, c) # print(list(ac)) # [(1, 4), (2, 5), (3, 6)],以短的為準(zhǔn)_ac = zip(*ac) # 與 zip 相反,可理解為解壓,返回二維矩陣式 print(list(_ac)) # [(1, 2, 3), (7, 8, 9)],如果沒把上面的 print(list(ac)) 注掉,這里的顯示結(jié)果就是[]了應(yīng)用示例 一
''' 學(xué)習(xí)中遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:725638078 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' print('應(yīng)用示例一') name = ('jack', 'alex', 'sony', 'joey') age = (25, 28, 21, 30) for a, n in zip(name, age):print(a, n)應(yīng)用示例 二:二維矩陣行列轉(zhuǎn)換
print('應(yīng)用示例二') a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(list(map(list, zip(*a)))) # [[1, 4, 7], [2, 5, 8], [3, 6, 9]], map()函數(shù)把zip(*a)后的每一個元素轉(zhuǎn)化為list總結(jié)
以上是生活随笔為你收集整理的Python教程:zip 函数的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python教程timeit模块的使用教
- 下一篇: Python教程:序列的增量赋值