如何动态创建基于Python列表长度的新变量?



是否有任何方法可以根据Python列表中有多少项自动创建新变量?

例如,如果我有这样一个变量:

var = (json.loads(requests.get(list[0])).text)

是否有可能根据列表的长度自动创建这样的附加变量?我想避免手工写出所有变量。假设我的列表有4个条目(长度= 4)。

var = (json.loads(requests.get(list[0])).text)
var1 = (json.loads(requests.get(list[1])).text)
var2 = (json.loads(requests.get(list[2])).text)
var3 = (json.loads(requests.get(list[3])).text)

我将感激任何帮助。谢谢你。

直接回答您的问题是在全局字典中添加值。可以用globals,eval,exec来做。我不建议这样做,因为如果你有一个很长的列表,并且可以改变大小,那么你必须记住你有多少个元素。

这里有一个抽象问题:

var_str_pattern = 'var{}'
val = ['smt', 'else']
for i, v in enumerate(val, start=1):
globals()[var_str_pattern.format(i)] = v
print(var1)
#smt
print(var2)
#else

具体问题:

n = 3
var_str_pattern = 'var'
for i in range(1, n+1):
globals()[f'{var_str_pattern}{i}'] = json.loads(requests.get(list[i])).text
print(var1)
print(var2)
print(var3)

您应该使用字典方法,就像Riqq的答案一样。

你为什么不试着用字典来处理这个问题呢?

vars = {f'var{i}': json.loads(requests.get(yourlist[i])).text for i in range(len(yourlist))}

您可以访问变量:vars['var1']vars.get('var1')

一般来说,在程序执行期间创建新变量不是一个好主意。

最新更新