今天看到这样一道题目:求list中的偶数的平方的和
要求用一行Python代码写完
如果没有限制的话是很简单的:
有限制的话可以这么做,首先取出列表中所有的偶数元素、平方后组成一个新的列表:
reduce函数可以对列表中的元素进行两两计算达到缩减列表元素的目的,比如
可以得到[1, 2, 3, 4, 5]列表中所有元素的和,相当于((((1+2)+3)+4)+5)。
列表中有两个以上元素的时候将他们两个进行计算得到一个结果再放回列表,直到列表中只剩下一个元素时返回,其实现大致如下:
那么用reduce对我们刚才这题的列表进行计算就要这么写:
当然C语言也可以实现这种Pythonic的做法,自己做一个reduce函数即可,实现的过程中有两点要注意,
(1):传计算函数的时候要传函数指针
(2):C语言数组不记录元素个数,只能手动传
比如,求一个数组中所有元素的和,可以用如下代码: