【问题标题】:Function for Iteration over tuples元组迭代函数
【发布时间】:2016-10-03 14:55:38
【问题描述】:

我有以下问题: 我想遍历给定列表并返回所有可能的笛卡尔积之和的最小值:

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

你知道我做错了什么吗? 还有没有颠簸或类似的有效方法?

【问题讨论】:

  • 请始终包含错误消息。它可能会准确地告诉您代码出了什么问题:product 至少需要两个参数,而您只传递一个。

标签: python tuples itertools


【解决方案1】:

我自己找到了一个解决方案: 我为返回值添加了*args

def zmin(tup):
    return min(sum(a*a for a in s) for s in product(*tup))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-22
    • 2021-12-28
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2021-12-04
    相关资源
    最近更新 更多