在Python中使用嵌套列表

时间:2016-01-04 14:34:12

标签: python list python-3.x

list_ = [(1, 2), (3, 4)]

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

(1 + 3) * (2 + 4) = 24

2 个答案:

答案 0 :(得分:7)

例如:

import operator as op
import functools
functools.reduce(op.mul, (sum(x) for x in zip(*list_)))

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

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

import numpy as np
np.array(list_).sum(0).prod()

答案 1 :(得分:0)

如果列表很小,我认为使用operatoritertools这样的东西就是将大锤应用于坚果。同样numpy。纯Python有什么问题?

result = 1
for s in [ sum(x) for x in zip( *list_) ]: 
  result *= s

(虽然如果纯粹会更好 Python内置product以及sum)。此外,如果你只专门处理成对的2元组,那么任何形式的迭代都是一个大锤。只需编码

result = (list_[0][0]+list_[1][0] )*( list_[0][1]+list_[1][1])