是否有任何方法可以根据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')
一般来说,在程序执行期间创建新变量不是一个好主意。