Pythonä¸map()ãfilter()ãreduce()è¿ä¸ä¸ªé½æ¯åºç¨äºåºåçå
ç½®å½æ°ã
æ ¼å¼ï¼
map(func, seq1[, seq2,â¦])
第ä¸ä¸ªåæ°æ¥åä¸ä¸ªå½æ°åï¼åé¢çåæ°æ¥åä¸ä¸ªæå¤ä¸ªå¯è¿ä»£çåºåï¼è¿åçæ¯ä¸ä¸ªéåã
Pythonå½æ°ç¼ç¨ä¸çmap()å½æ°æ¯å°funcä½ç¨äºseqä¸çæ¯ä¸ä¸ªå
ç´ ï¼å¹¶å°ææçè°ç¨çç»æä½ä¸ºä¸ä¸ªlistè¿åãå¦æfunc为Noneï¼ä½ç¨åzip()ã
1ãå½seqåªæä¸ä¸ªæ¶ï¼å°å½æ°funcä½ç¨äºè¿ä¸ªseqçæ¯ä¸ªå
ç´ ä¸ï¼å¹¶å¾å°ä¸ä¸ªæ°çseqã
让æ们æ¥çä¸ä¸åªæä¸ä¸ªseqçæ¶åï¼map()å½æ°æ¯å¦ä½å·¥ä½çã
ä»ä¸å¾å¯ä»¥çåºï¼å½æ°funcå½æ°ä¼ä½ç¨äºseqä¸çæ¯ä¸ªå
ç´ ï¼å¾å°func(seq[n])ç»æçå表ãä¸é¢ä¸¾å¾ä¾åæ¥å¸®å©æ们æ´å¥½çç解è¿ä¸ªå·¥ä½è¿ç¨ã
#使ç¨lambda
>>> print map(lambda x: x % 2, range(7))
[0, 1, 0, 1, 0, 1, 0]123123
#使ç¨å表解æ
>>> print [x % 2 for x in range(7)]
[0, 1, 0, 1, 0, 1, 0]123123
ä¸ä¸ªseqæ¶ï¼å¯ä»¥ä½¿ç¨filter()å½æ°ä»£æ¿ï¼é£ä»ä¹æ
åµä¸è½ä»£æ¿å¢ï¼
2ãå½seqå¤äºä¸ä¸ªæ¶ï¼mapå¯ä»¥å¹¶è¡ï¼æ³¨ææ¯å¹¶è¡ï¼å°å¯¹æ¯ä¸ªseqæ§è¡å¦ä¸å¾æ示çè¿ç¨ï¼
ä»å¾å¯ä»¥çåºï¼æ¯ä¸ªseqçåä¸ä½ç½®çå
ç´ åæ¶ä¼ å
¥ä¸ä¸ªå¤å
çfuncå½æ°ä¹åï¼å¾å°ä¸ä¸ªè¿åå¼ï¼å¹¶å°è¿ä¸ªè¿åå¼åæ¾å¨ä¸ä¸ªå表ä¸ãä¸é¢æ们çä¸ä¸ªæå¤ä¸ªseqçä¾åï¼
>>> print map(lambda x , y : x ** y, [2,4,6],[3,2,1])
[8, 16, 6]1212
å¦æä¸é¢æ们ä¸ä½¿ç¨mapå½æ°ï¼å°±åªè½ä½¿ç¨for循ç¯ï¼ä¾æ¬¡å¯¹æ¯ä¸ªä½ç½®çå
ç´ è°ç¨è¯¥å½æ°å»æ§è¡ãè¿å¯ä»¥ä½¿è¿åå¼æ¯ä¸ä¸ªå
ç»ãå¦ï¼
>>> print map(lambda x , y : (x ** y, x + y), [2,4,6],[3,2,1])
[(8, 5), (16, 6), (6, 7)]1212
å½funcå½æ°æ¶Noneæ¶ï¼è¿å°±åzip()å½æ°äºï¼å¹¶ä¸zip()å¼å§å代è¿ä¸ªäºï¼ç®çæ¯å°å¤ä¸ªå表ç¸åä½ç½®çå
ç´ å½å¹¶å°ä¸ä¸ªå
ç»ãå¦ï¼
>>> print map(None, [2,4,6],[3,2,1])
[(2, 3), (4, 2), (6, 1)]1212
éè¦æ³¨æçæ¯ï¼
mapæ æ³å¤çseqé¿åº¦ä¸ä¸è´ã对åºä½ç½®æä½æ°ç±»åä¸ä¸è´çæ
åµï¼è¿ä¸¤ç§æ
åµé½ä¼æ¥ç±»åé误ãå¦ä¸å¾ï¼
3ã使ç¨map()å½æ°å¯ä»¥å®ç°å°å
¶ä»ç±»åçæ°è½¬æ¢ælistï¼ä½æ¯è¿ç§è½¬æ¢ä¹æ¯æç±»åéå¶çï¼å
·ä½ä»ä¹ç±»åéå¶ï¼å¨ä»¥åçå¦ä¹ ä¸æ
¢æ
¢æ¸ç´¢å§ãè¿éç»åºå 个è½è½¬æ¢çä¾åï¼
***å°å
ç»è½¬æ¢ælist***
>>> map(int, (1,2,3))
[1, 2, 3]
***å°å符串转æ¢ælist***
>>> map(int, '1234')
[1, 2, 3, 4]
***æååå
¸çkeyï¼å¹¶å°ç»æåæ¾å¨ä¸ä¸ªlistä¸***
>>> map(int, {1:2,2:3,3:4})
[1, 2, 3]
***å符串转æ¢æå
ç»ï¼å¹¶å°ç»æ以å表çå½¢å¼è¿å***
>>> map(tuple, 'agdf')
[('a',), ('g',), ('d',), ('f',)]
#å°å°å转æ大å
def u_to_l (s):
return s.upper()
print map(u_to_l,'asdfd')
温馨提示:答案为网友推荐,仅供参考