有没有办法把下面的代码写成一行?
my_list = [[1, 1, 1], [1, 2], [1, 3]]
result = 1
for l in list:
result = result * sum(l)
请您参考如下方法:
对从 map 获得的summed 子列表使用reduce。
这样做:
>>> from functools import reduce
>>> reduce(lambda x,y: x*y, map(sum, my_list))
36
在 python 2.x 中,将不再需要 import,因为 reduce 是内置的:
>>> reduce(lambda x,y: x*y, map(sum, my_list))
36
