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