Python以元素方式列出列表列表

时间:2014-02-03 23:25:56

标签: python list numpy

将按元素列表的数字列表相乘的最佳方法是什么?

E.g。

[[1,2,3],[2,3,4],[3,4,5]]

-> [6,24,60]

3 个答案:

答案 0 :(得分:5)

使用np.prod

>>> a = np.array([[1,2,3],[2,3,4],[3,4,5]])
>>> np.prod(a,axis=1)
array([ 6, 24, 60])

答案 1 :(得分:3)

使用列表推导和reduce

>>> from operator import mul
>>> lis = [[1,2,3],[2,3,4],[3,4,5]]
>>> [reduce(mul, x) for x in lis]
[6, 24, 60]

答案 2 :(得分:1)

import operator
import functools
answer = [functools.reduce(operator.mul, subl) for subl in L]

或者,如果您更喜欢地图:

answer = map(functools.partial(functools.reduce, operator.mul), L)  # listify as required