我有以下问题: 我想迭代给定的列表并返回所有可能的笛卡尔积的总和的最小值:
from itertools import product
z = ((1, 2),(2, 3))
def zmin(tup):
return min(sum(a*a for a in s) for s in product(tup))
zmin(z) --> ERROR MESSAGE
正确答案应该是这样的:
1*1 + 2*2 = 5
1*1 + 3*3 = 10
2*2 + 2*2 = 8
2*2 + 3*3 = 13
这样zmin(z)的返回值= 5
你知道我做错了什么吗? 还有一种有效的方式与坎坷或类似的东西?
答案 0 :(得分:0)
*args
:
def zmin(tup):
return min(sum(a*a for a in s) for s in product(*tup))