如何在 python 中的 for 循环中分配动态变量
How to assign dynamic variables in a for loop in python
我五年有五个模型如下。
word2vec_files = ["word2vec_2011", "word2vec_2012", "word2vec_2013", "word2vec_2014", "word2vec_2015"]
years = [2011, 2012, 2013, 2014, 2015]
我想将每个模型打开为 model_2011
、model_2012
、model_2013
、model_2014
、model_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 循环中分配动态变量
如果需要,我很乐意提供更多详细信息。
不幸的是,您不能从这样的字符串创建变量;但你可以使用字典,并添加 keys/values 到它:
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)
我五年有五个模型如下。
word2vec_files = ["word2vec_2011", "word2vec_2012", "word2vec_2013", "word2vec_2014", "word2vec_2015"]
years = [2011, 2012, 2013, 2014, 2015]
我想将每个模型打开为 model_2011
、model_2012
、model_2013
、model_2014
、model_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.
如果需要,我很乐意提供更多详细信息。
不幸的是,您不能从这样的字符串创建变量;但你可以使用字典,并添加 keys/values 到它:
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)