我想使用迭代生成唯一的变量。我尝试使用 globals(( 函数编写代码,但由于某种原因它不起作用。
for i in (range(0,7)):
for v in range(0,7):
globals()['element%s' % (i,v)] = []
老实说,你不应该玩globals
(阅读材料(。但是您的错误来自这样一个事实,即您尝试转换为字符串(i, v)
大小为 2 的参数,并且您要求转换的地方只有一个:%s
。如果你想让它工作,你的字符串中需要有 2X%s
:
for i in (range(0,4)):
for v in range(0,3):
print('%selement%s' % (i,v))
0element0
0element1
0element2
1element0
1element1
1element2
2element0
2element1
2element2
3element0
3element1
3element2
问题出在文本格式上。
请尝试globals()[f'elements{i,v}'] = []
。
你可以使用这样的东西。请注意,修改globals()
很少是一个好主意,请看一下。
for i in range(5):
globals()['myvar'+str(i)] = i**2
print(myvar2)
print(myvar3)
输出:
4
9