首页 文章详情

如何动态生成10个变量,如a1,a2,...,a10?

数据森麟 | 323 2021-04-18 17:29 0 0 0
UniSMS (合一短信)


公众号后台回复“图书“,了解更多号主新书内容

作者:zhenguo

来源: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

以上就是使用localsglobals动态创建变量的基本方法,动态创建变量在需要显示创建并分析多变量问题,如多元分析等场景中有一定使用价值。更多用法欢迎留言。

◆ ◆ ◆  ◆ 

麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:





数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。


管理员二维码:

猜你喜欢

 卧槽!原来爬取B站弹幕这么简单

 厉害了!麟哥新书登顶京东销量排行榜!

 笑死人不偿命的知乎沙雕问题排行榜

 用Python扒出B站那些“惊为天人”的阿婆主!

 你相信逛B站也能学编程吗

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter