Python 如何使用itertools获得每个参数的元组,而不是最终结果?
我尝试将三个列表的元素相互组合。我想以特定的方式将每个元素与每个元素组合起来: 元素*元素**元素 我想要价值观每个参数的值。条件是不超过某个总值 事实上,我使用了itertools和product。我能够收到最高的总值,但不是每个参数的值。我不知道如何整合这个条件 来自itertools导入产品的Python 如何使用itertools获得每个参数的元组,而不是最终结果?,python,python-3.x,Python,Python 3.x,我尝试将三个列表的元素相互组合。我想以特定的方式将每个元素与每个元素组合起来: 元素*元素**元素 我想要价值观每个参数的值。条件是不超过某个总值 事实上,我使用了itertools和product。我能够收到最高的总值,但不是每个参数的值。我不知道如何整合这个条件 来自itertools导入产品的 列表1=列表(范围(1,4)) 列表2=列表(范围(4,8)) 列表3=列表(范围(3,7)) 结果=([m*(n**o)表示产品中的m,n,o(列表1,列表2,列表3)]) 最大值(结果)
列表1=列表(范围(1,4))
列表2=列表(范围(4,8))
列表3=列表(范围(3,7))
结果=([m*(n**o)表示产品中的m,n,o(列表1,列表2,列表3)])
最大值(结果)
输出实际上是352947,但我预计类似于[4,8,7]。在下一步中,我想添加一个条件。我想要每个参数的值,但总数不应超过15000。你们能帮帮我吗?将
m
、n
和o
以及计算值m*(n**o)
作为列表中的每个元素。然后使用lambda获取结果列表的最大值,使用计算值作为键:
from itertools import product
List1 = list(range(1,4))
List2 = list(range(4,8))
List3 = list(range(3,7))
result = ([(m, n, o, m*(n**o)) for m,n,o in product(List1,List2,List3)])
max_m, max_n, max_o, max_value = max(result, key=lambda tup: tup[3])
包括元组中的
m
、n
和o
以及计算值m*(n**o)
,作为列表中的每个元素。然后使用lambda获取结果列表的最大值,使用计算值作为键:
from itertools import product
List1 = list(range(1,4))
List2 = list(range(4,8))
List3 = list(range(3,7))
result = ([(m, n, o, m*(n**o)) for m,n,o in product(List1,List2,List3)])
max_m, max_n, max_o, max_value = max(result, key=lambda tup: tup[3])
谢谢,但我不明白如何添加条件。您的代码提供了以下输出:376352947。如何设置最大值,例如150000?您可以将条件添加到列表本身:
result=([(m,n,o,m*(n**o))如果m*(n**o),则在产品(列表1,列表2,列表3)中为m,n,o设置最大值谢谢,但我不知道如何添加条件。您的代码给了我以下输出:37 6 352947。我如何设置最大值,例如150000?您可以将条件添加到列表理解本身:result=([(m,n,o,m*(n**o))对于产品(列表1,列表2,列表3)中的m,n,o,如果m*(n**o)