python zip()函数的理解与应用
生活随笔
收集整理的這篇文章主要介紹了
python zip()函数的理解与应用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中為了減少內(nèi)存,zip() 返回的是一個對象。如需展示列表,需手動 list() 轉(zhuǎn)換。
用法,zip(iterable, ......)????? 參數(shù),一個或多個迭代器。
zip() 函數(shù)用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組,然后返回由這些元組組成的列表。
如果各個迭代器的元素個數(shù)不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。
a = [1, 2, 3] b = [1, 2, 3] c = [1, 2, 3, 4]ab = list(zip(a, b)) bc = list(zip(b, c)) abc = list(zip(a, b, c)) re = list(zip(*abc))print(ab) #[(1, 1), (2, 2), (3, 3)] print(bc) #[(1, 1), (2, 2), (3, 3)] print(abc) #[(1, 1, 1), (2, 2, 2), (3, 3, 3)] print(re) #[(1, 2, 3), (1, 2, 3), (1, 2, 3)]在運行zip(*abc)之前,abc的值是:[(1, 1, 1), (2, 2, 2), (3, 3, 3)]
那么,zip(*abc) 等價于 zip((1, 1, 1), (2, 2, 2), (3, 3, 3))
所以,運行結(jié)果是:[(1, 2, 3), (1, 2, 3), (1, 2, 3)]
正如:
nums = ['flower','flow','flight'] list(zip(*nums))=[('f', 'f', 'f'),('l', 'l', 'l'),('o', 'o', 'i'),('w', 'w', 'g')]應(yīng)用1:
l = ['a', 'b', 'c', 'd', 'e','f'] print l #打印列表 print(list(zip(l[:-1],l[1:]))) 輸出結(jié)果: ['a', 'b', 'c', 'd', 'e', 'f'] [('a', 'b'), ('b', 'c'), ('c', 'd'), ('d', 'e'), ('e', 'f')]應(yīng)用2:
對列表的元素進行算數(shù)運算。
a = [1, 2, 3] b = [4, 5, 6]c = [x + y for x, y in list(zip(a, b))] d = list(map(lambda x : x[1] + x[0], list(zip(a, b))))print(c) #[5, 7, 9] print(d) #[5, 7, 9]?
總結(jié)
以上是生活随笔為你收集整理的python zip()函数的理解与应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Word中带有超级链接的文字始终有下划线
- 下一篇: 显示器不支持当前的输入时序怎么办(虚坏叔