如何在循环中使用动态变量

2018-06-16 10:04:21 +08:00
 songdg
例如:var0, var1, var2 = 0, 1, 2
for i in range(3):
print(vari)
3279 次点击
所在节点    Python
12 条回复
geelaw
2018-06-16 10:04:43 +08:00
你要找的是不是:数组
blless
2018-06-16 10:20:44 +08:00
locals() globals()
twistedmeadows
2018-06-16 10:44:16 +08:00
啥是动态变量?...

你是想这样吗
var = [0, 1, 2 ]
for i in range(3):
print(var[i])

但 python 里一般都直接这样:
list = [0, 1, 2 ]
for var in list:
print(var)
v2exchen
2018-06-16 10:57:26 +08:00
var0, var1, var2 = 0, 1, 2
for i in range(3):
print(eval('var' + str(i)))
rabbbit
2018-06-16 11:08:57 +08:00
for i in range(10):
...locals()['var' + str(i)] = i
print(var0) # 0
enchilada2020
2018-06-16 13:18:52 +08:00
@rabbbit 哇 没学过 Python 行 2 的意思是给变量取名并分配内存空间并赋值吗 好神奇
super452
2018-06-16 13:43:44 +08:00
@rabbbit 牛 B
imn1
2018-06-16 14:26:56 +08:00
学 python 基本上都要知道 locals() globals()的吧?
GuuJiang
2018-06-16 17:02:49 +08:00
@geelaw 同意,提问者需要的显然只是数组,最多字典,以上你们教的各种黑科技只会让人从此走上歪路
songdg
2018-06-17 11:11:22 +08:00
@geelaw 我也想过使用数组,但数组名字不能一看到就知道是什么意思,有点不太方便。
songdg
2018-06-17 11:12:30 +08:00
@rabbbit 谢谢提供的黑科技。
songdg
2018-06-17 11:14:24 +08:00
@GuuJiang 谢谢,用字典感觉也不错,只是看着有点别扭。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/463537

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX