from functools import reduce
import operator
a=reduce(operator.add, [[1, 2], [3]], [])
b=reduce(lambda x,y:x+y, [[1, 2], [3]], [])
c=[1,2]+[3]
为什么a的步进直接一步到位给出答案,类似c
b的步进是可以清楚地看到reduce函数的赋值,运算,返回运算结果这三步的(我猜是这三步)
其实b的步进我也有一个问题为什么x首先赋值的是[],而y赋值是[1,2]
因为b里有lambda表达式,里面是个匿名函数,你其实是跟进匿名函数里面了
你想看reduce里面到底是怎么执行的,那么不要点step over,而应该点step into,就可以跳转到函数里面
至于x为什么是[],就是因为你传进去一个参数是[],它是怎么赋值给x的,你可以进入reduce函数里面看它的实现