python中的zip()函数和map()函数
一、zip()函數(shù)
1.語法:
zip(iterable, ...)參數(shù)說明:
- iterable,…—— 一個(gè)或多個(gè)迭代器;
在python3中:
zip() 函數(shù)用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的對(duì)象,這樣做的好處是節(jié)約了不少的內(nèi)存。
我們可以使用 list() 轉(zhuǎn)換來輸出列表。
如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長(zhǎng)度與最短的對(duì)象相同,利用 * 號(hào)操作符,可以將元組解壓為列表。
2.返回值:
- python2直接返回一個(gè)元組列表
- python3返回一個(gè)對(duì)象,可以用list(),tuple()把這個(gè)對(duì)象轉(zhuǎn)成列表或者元組
3.用法:(python3環(huán)境)
>>>a = [1,2,3] >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) # 返回一個(gè)對(duì)象 >>> zipped <zip object at 0x103abc288> >>> list(zipped) # list() 轉(zhuǎn)換為列表 [(1, 4), (2, 5), (3, 6)] >>> list(zip(a,c)) # 元素個(gè)數(shù)與最短的列表一致 [(1, 4), (2, 5), (3, 6)]>>> zipped = zip(a,b) >>> a1, a2 = zip(*ziped) # 與 zip 相反,zip(*) 可理解為解壓,返回二維矩陣式 >>> a1 (1, 2, 3) >>> a2 (4, 5, 6)>>>c = ('a','b','c') >>>d = (1,2,3) >>>aa = zip(c,d) >>>list(aa) [('a', 1), ('b', 2), ('c', 3)]4.關(guān)于用*解包
- 帶*號(hào)的表達(dá)式獲取序列剩余部分
- 帶*號(hào)的表達(dá)式獲取序列中間部分
- 帶*號(hào)的表達(dá)式獲取序列前面部分
- 嵌套解包
二、map()函數(shù)
1.語法:
map(func, iterable, ...)map()會(huì)根據(jù)提供的函數(shù)對(duì)指定序列做映射。
第一個(gè)參數(shù) func 是函數(shù)名字,它把函數(shù) func 依次作用在后面每個(gè) iterable 的每個(gè)元素上,然后并返回執(zhí)行結(jié)果。
2.返回值:
- python2中:返回一個(gè)新的列表。
- python3中:返回一個(gè)迭代器
3.用法:(python3環(huán)境)
''' Python學(xué)習(xí)交流群:579817333尋找有志同道合的小伙伴,互幫互助 群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' >>>def square(x) : # 計(jì)算平方數(shù) ... return x ** 2 ... >>> m = map(square, [1,2,3,4,5]) # 計(jì)算列表各個(gè)元素的平方 >>> list(m) [1, 4, 9, 16, 25] >>> m = map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函數(shù) >>> list(m) [1, 4, 9, 16, 25]# 提供了兩個(gè)列表,對(duì)相同位置的列表數(shù)據(jù)進(jìn)行相加 >>> m = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) >>> list(m) [3, 7, 11, 15, 19]4.map()的特殊情況:函數(shù)是None
在 python3中,由于map()返回是一個(gè)迭代器,所以在這種情況下,map()返回的這個(gè)對(duì)象其實(shí)是不可調(diào)用的
>>> m = map(None,[1,2,3,4]) >>> m <map object at 0x000001EFFCC8E710> >>> list(m) Traceback (most recent call last):File "<stdin>", line 1, in <module> TypeError: 'NoneType' object is not callable總結(jié)
以上是生活随笔為你收集整理的python中的zip()函数和map()函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 中 property 属性
- 下一篇: Python 3 的 int 类型详解(