迭代输入场景并将结果存储为Python

时间:2018-04-13 10:11:30

标签: python loops

我正在尝试使用循环为所有3个输入场景运行我的模型,而不是必须复制粘贴脚本3次并手动更改输入数据。我有3个输入数据数组,并希望将结果(也是相同长度的数组)存储在同一变量中的单独嵌套数组中。目前,我只知道如何追加结果。但是,它是不正确的,我想将不同场景的结果存储在同一变量中的单独元素中。

import numpy as np
# Scenarios
years = np.arange(50)
sc0 = np.arange(50)
sc1 = np.arange(50)+100
sc2 = np.arange(50)+200

scenarios = [sc0, sc1, sc2]

results = [] 

# Model computes something
for sc in range(3):
    for t in years:
        outcome = scenarios[sc][t] / 10
        results.append(outcome)

简而言之,该解决方案应该允许我使用results[0]results[1]results[2]

访问所有模型运​​行的结果

2 个答案:

答案 0 :(得分:0)

我创建了一个新列表subresults,为每个场景创建了[]。然后,在为该场景计算每个结果后,将其附加到列表results

import numpy as np
# Scenarios
years = np.arange(50)
sc0 = np.arange(50)
sc1 = np.arange(50)+100
sc2 = np.arange(50)+200

scenarios = [sc0, sc1, sc2]

results = []

# Model computes something
for sc in range(3):
    subresults = [] 
    for t in years:
        outcome = scenarios[sc][t] / 10
        subresults.append(outcome)
    results.append(subresults)

然后,您可以使用results[0]results[1]results[2]来访问您的搜索结果。

答案 1 :(得分:0)

理解也会这样做:

resultsets = [[sc[t]/10 for t in years] for sc in scenarios]