reduceº¯Êý»á¶Ô²ÎÊýµü´úÆ÷ÖеÄÔªËØ½øÐÐÀÛ»ý¡£
reduceº¯ÊýµÄ¶¨ÒåÈçÏ£º
functools.reduce(function, iterable[, initializer])
ÔÚÉÏÊö¶¨ÒåÖУ¬functionÊÇÒ»¸ö´øÓÐÁ½¸ö²ÎÊýµÄº¯Êý£»µÚ2¸ö²ÎÊýiterableÊÇÒ»¸öµü´úÆ÷¶ÔÏó£»initializer±íʾ¹Ì¶¨µÄ³õʼֵ¡£reduceº¯Êý»áÒÀ´Î´Óµü´úÆ÷¶ÔÏóÖÐÈ¡³öÿ¸öÔªËØ£¬ºÍÉÏÒ»´Îµ÷ÓÃfunctionµÄ½á¹û×öΪ²ÎÊýÔٴε÷ÓÃfunctionº¯Êý¡£ÔÚPython3ÖУ¬reduceº¯Êý±»·ÅÖÃÔÚfunctorsÄ£¿éÖУ¬Ê¹ÓÃʱÐèÒªÏÈÒýÈ룬ʾÀý´úÂëÈçÏ£º
from functools import reduce
func = lambda x, y: x + y
result = reduce(func, [1, 2, 3, 4, 5])
print(result)
ÔÚÉÏÊöʾÀýÖУ¬Ê×ÏÈÒýÈëÁËfucntoolsÄ£¿é£¬È»ºó¶¨ÒåÁËÒ»¸ö¼ÆËãÁ½¸öÊýµÄºÍµÄÄäÃûº¯Êý¡£
ÓÉÓÚÔÚµ÷Óà reduceº¯Êýʱ´«ÈëÁËfuncºÍÐòÁУ¬ËùÒÔ³ÌÐò»á°ÑÐòÁеÄÿ¸öÔªËØÈ¡³öÀ´£¬ºÍÉϴε÷ÓúóµÄ½á¹û×÷Ϊ²ÎÊýÔٴε÷ÓÃfuncº¯Êý£¬×îºó½«½á¹û·µ»Ø¸ø result¡£¡¾ÍƼöÁ˽⣺ÀÖÓã²¥¿Í python+È˹¤ÖÇÄܿγ̡¿
³ÌÐòµÄÔËÐнá¹ûÈçÏÂËùʾ£º
15
Èç¹ûÔÚµ÷ÓÃreduceº¯Êýʱ´«ÈëÁËinitializer²ÎÊý£¬ÄÇôfunctionº¯Êý»áÒÔµü´úÆ÷ÖеĵÚÒ»¸öÔªËØÓëinitializerµÄºÍ×÷Ϊ²ÎÊý½øÐе÷Óá£Ê¾Àý´úÂëÈçÏ£º¡¾²å²¥¸£Àû£º2019ÀÖÓã²¥¿ÍpythonÊÓÆµ½Ì³ÌÈ«¼¯ÏÂÔØ¡¿
from functools import reduce
result = reduce (lambda x, y: x + y, [1, 2, 3, 4], 5)
print(result)
# ½á¹ûΪ
15
´ËÍ⣬iterable²ÎÊý»¹¿ÉÒÔ´«Èë×Ö·û´®ÀàÐÍ£¬Ê¾Àý´úÂëÈçÏ£º
from functools import reduce
result = reduce(lambda x, y: x + y, ['aa', 'bb', 'cc'], 'dd')
print(result)
# ½á¹ûΪ
'aabbccdd'
±¾ÎÄÀ´×Ô£ºÀÖÓã²¥¿Í python+È˹¤ÖÇÄÜѧԺ python.itcast.cn
²ÂÄãϲ»¶£ºpython filterº¯ÊýÓ÷¨