【发布时间】:2015-09-30 04:55:58
【问题描述】:
我有一个运行数值模拟的函数。我想为每个参数定义许多可能的输入,并在所有可能的组合上运行该函数。我现在的做法是使用 itertools:
param1=['London','New York','Paris']
param2=[dataframe1,dataframe2]
param2_description =['optimistic assumptions','conservative assumptions' ]
myprod = itertools.product(param1, param2)
for i in myprod:
myresult = myfunction(i[0],i[1])
我的问题是:如何将描述与参数的每个可能值相关联,并将其传递给函数?换句话说,当 i[0]=dataframe1 时,如何将“乐观假设”传递给我的函数?
我考虑过在列表中查找项目的函数,但我不确定它们是否适用于所有对象,例如 pandas 数据框。
谢谢! PS我不必不惜一切代价使用itertools,我可以考虑基于其他方法的替代方案。
【问题讨论】:
-
你不能把
param2_description变成字典{dataframe1: 'optimistic assumptions', ...}然后简单地传递param2_description[i[0]]吗? -
字典的键不是必须是字符串吗?我会使用数据框对象作为字典的键吗?
-
你真正想要的输出是什么?
-
@freakish 我可以让 itertools 遍历字典的键。这将允许我检索值和描述。谢谢!我早该想到的……
-
@Pythonistaanonymous 字典键不必是字符串。它们可以是任何不可变的对象。但是,如果您找到了不同的解决方案,那就太好了。
标签: python itertools cartesian-product