如何在python中的for循环中分配动态变量

时间:2019-07-30 08:15:35

标签: python word2vec

我有五个模型,五年了。

word2vec_files = ["word2vec_2011", "word2vec_2012", "word2vec_2013", "word2vec_2014", "word2vec_2015"]
years = [2011, 2012, 2013, 2014, 2015]

我想以model_2011model_2012model_2013model_2014model_2015的形式打开每个模型。

目前,我正在按如下步骤进行操作。

model_2011 = word2vec.Word2Vec.load("word2vec_2011")
model_2012 = word2vec.Word2Vec.load("word2vec_2012")
model_2013 = word2vec.Word2Vec.load("word2vec_2013")
model_2014 = word2vec.Word2Vec.load("word2vec_2014")
model_2015 = word2vec.Word2Vec.load("word2vec_2015")

现在,我想使用for循环模仿相同的过程。

for i, word2vec_file in enumerate(word2vec_files):
    "model_"+str(years[i]) = word2vec.Word2Vec.load(word2vec_file)

但是,出现以下错误SyntaxError: can't assign to operator。我想知道如何在python的for循环中分配动态变量。

很高兴在需要时提供更多详细信息。

1 个答案:

答案 0 :(得分:2)

不幸的是,您不能从这样的字符串中创建变量;但是您可以使用字典,并向其中添加键/值:

years = [2011, 2012, 2013, 2014, 2015]

models = {}

for year in years:
  models[year] = word2vec.Word2Vec.load("word2vec_%s" % year)

print(models)

这样,您可以访问models上的年份来获取所需的内容。

您可以通过字典理解来做同样的事情:

years = [2011, 2012, 2013, 2014, 2015]

models = {
  year: "word2vec_%s" % year
  for year in years
}

print(models)