专栏首页算法channel如何动态生成10个变量,如a1,a2,...,a10?

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

前几天有同事问我,如何动态生成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动态创建变量的基本方法,动态创建变量在需要显示创建并分析多变量问题,如多元分析等场景中有一定使用价值。更多用法欢迎留言。

本文分享自微信公众号 - Python与机器学习算法频道(alg-channel),作者:zhenguo

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Excel公式技巧24: Excel公式中的降维技术

    看过前面一系列文章的朋友,一定会熟悉“重新定义数组维度”的概念。这是一项非常有用且非常重要的技术,使我们可以接受二维数组并将其转换为一维数组,同时将元素保留在该...

    fanjy
  • Excel公式练习40: 从单元格区域的字符串中提取唯一值

    导语:继续研究来自于excelxor.com的案例。坚持到现在的,应该都有感觉了!

    fanjy
  • 36条常用Excel技巧 收藏备用!

    1、两列数据查找相同值对应的位置 =MATCH(B1,A:A,0) 2、已知公式得结果 定义名称=EVALUATE(Sheet1!C1) 已知结果得公式 定义名...

    CDA数据分析师
  • 关于批次效应矫正后出现负值

      a batch effect occurs when non-biological factors in an experiment cause chang...

    生信技能树
  • excel 的条件格式(一)

    5.点击确定,便得到了如下结果,excel 对值大于 60 的单元格进行了突出显示。

    mr.songw
  • 巧妙解决二维表信息匹配问题

    用户1332619
  • 关于SparkSQL的开窗函数,你应该知道这些!

    相信用过MySQL的朋友都知道,MySQL中也有开窗函数的存在。开窗函数的引入是为了既显示聚集前的数据,又显示聚集后的数据。即在每一行的最后一列添加聚合函数的结...

    王知无-import_bigdata
  • Excel揭秘21:Excel是如何控制公式计算的

    通常,Excel默认的计算模式为“自动”计算,这可以从下图1所示的功能区“公式”选项卡“计算”组中的计算选项看出来。

    fanjy
  • Excel公式技巧05: IFERROR函数,从结果中剔除不需要的值

    在使用公式时,我们经常遇到将某个值从结果数组中剔除,然后将该数组传递给另一个函数的情形。

    fanjy

扫码关注云+社区

领取腾讯云代金券