在Python中使用嵌套列表

bla*_*ned 4 python list python-3.x

list_ = [(1, 2), (3, 4)]
Run Code Online (Sandbox Code Playgroud)

什么是从内元组中取有序对的总和并乘以和的Pythonic方法?对于上面的例子:

(1 + 3) * (2 + 4) = 24
Run Code Online (Sandbox Code Playgroud)

eum*_*iro 7

例如:

import operator as op
import functools
functools.reduce(op.mul, (sum(x) for x in zip(*list_)))
Run Code Online (Sandbox Code Playgroud)

适用于初始数组的任何长度以及内部元组的任何长度.

另一种使用numpy的解决方案:

import numpy as np
np.array(list_).sum(0).prod()
Run Code Online (Sandbox Code Playgroud)

  • @erip因为`reduce`已从python 3中删除:https://docs.python.org/3.0/whatsnew/3.0.html#builtins (2认同)