Python动态生成变量
编辑日期: 2024-11-28 文章阅读: 次
Python动态生成变量
前几天有同事问我,如何动态生成10个变量名,如a1,a2,...,a10,当时我并没有给出今天文章中这个更好的方法,此方法也是我刚找到的,所以记录在这篇文章里。
使用的方法是Python内置函数locals()
,它返回一个字典,记录着当前所有局部变量。动态生成10个变量a1,a2,...,a10,可以写为:
In [29]: ld = locals()
...: for i in range(1,11):
...: ld['a' + str(i)] = 0 # 默认值设置为0
a1
-a10
,
In [30]: a1
Out[30]: 0
In [31]: a5
Out[31]: 0
locals
用于创建局部变量,如果想封装上面几行代码为一个函数,使用locals
动态创建变量后,只能在函数内部访问,外面就不能访问到了。另外一个globals
函数因为创建的是全局变量,所以得使用它。
def dynamic_variable(n, variable_prefix='a'):
for i in range(1,n+1):
gd = globals()
gd[variable_prefix+str(i)] = 0 # 新创建的n个变量,初始值都设置为0
调用方法dynamic_variable(10,'v')
后,我们便可以引用变量v1
,v2
,... v10
:
In [35]: dynamic_variable(10,'v')
In [36]: v6
Out[36]: 0
In [37]: v10
Out[37]: 0
以上就是使用locals
和globals
动态创建变量的基本方法,动态创建变量在需要显示创建并分析多变量问题,如多元分析等场景中有一定使用价值。更多用法欢迎留言。
Python 20个专题完整目录: