Python——內置函數-zip()、map()

python內置函數:https://www.runoob.com/python/python-built-in-functions.html

1、zip()函數

zip() 函數用於將可迭代的對象作爲參數,將對象中對應的元素打包成一個個元組,然後返回由這些元組組成的列表

如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓爲列表。

zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中爲了減少內存,zip() 返回的是一個對象。如需展示列表,需手動 list() 轉換。

代碼示例:

>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 打包爲元組的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # 元素個數與最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # 與 zip 相反,*zipped 可理解爲解壓,返回二維矩陣式
[(1, 2, 3), (4, 5, 6)]

2、map()函數

map() 會根據提供的函數對指定序列做映射。

Python 2.x 返回列表。

Python 3.x 返回迭代器。

代碼示例:

>>> a = [1.0, 2.0, 3.0] 
>>> print(list(map(int, a)))  # 將浮點數轉換爲整數
[1, 2, 3]

>>>def square(x) :            # 計算平方數
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5])   # 計算列表各個元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函數
[1, 4, 9, 16, 25]
 
# 提供了兩個列表,對相同位置的列表數據進行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章