精华内容
下载资源
问答
  • 今天小编就为大家分享一篇python 动态生成变量名以及动态获取变量的变量名方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python 动动态态生生成成变变量量名名以以及及动动态态获获取取变变量量的的变变量量名名方方法法 今天小编就为大家分享一篇python 动态生成变量名以及动态获取变量的变量名方法具有很好的参考价值希望 对大家有所 ...
  • python 动态生成变量名

    2019-12-13 09:35:15
    必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫: arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字,太累了...

    需求: 
          必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫: 
    arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字,太累了,而且增加了代码的冗余性,灵活性也不强,所以有没有一种方法是能动态创建list名称的呢?答案是有的!而与之对应,既然要对上面的列表动态操作,肯定是少不了动态去解析list名称。所以下面开始介绍方法:

    python 动态生成变量名
    locals函数
    代码之前,先介绍一个函数: 
    locals() 函数会以字典类型返回当前位置的全部局部变量。 

    >>>def runoob(arg):    # 两个局部变量:arg、z
    ...     z = 1
    ...     print (locals())
    ... 
    >>> runoob(4)
    {'z': 1, 'arg': 4}      # 返回一个名字/值对的字典
    >>>

    locals()函数参考地址

    下面用自己的例子来实现下,目标:动态创建名字为list_0到list_15的16个list列表:

    #coding=utf-8
    # 第一步 准备locals函数
    arriage_list={}
    """
    第二步 循环16次,从0-15赋值给locals函数对应的变量prepare_list
    prepare_list是一个字典,所以将我们需要的列表名称作为key值传入
    """
    for i in range(16):
        arriage_list['list_' + str(i)] = []
    print(type(arriage_list))  #打印arriage_list类型
    print(arriage_list)  #打印arriage_list值

    打印arriage_list结果

    <class 'dict'>
    {'list_0': [], 'list_1': [], 'list_2': [], 'list_3': [], 'list_4': [], 'list_5': [], 
    'list_6': [], 'list_7': [], 'list_8': [], 'list_9': [], 'list_10': [], 'list_11': [], 
    'list_12': [], 'list_13': [], 'list_14': [], 'list_15': []}

    从结果可以看出arriage_list返回的字典类型,(键+值)的结构 'list_0': [], 且值为空,这正好为后面向列表里添加数据创造了条件

    # 测试代码:
    prepare_list={}  #定义空字典
    def test_list_pre():
        prepare_list = locals()  #返回prepare_list中当前位置每个字典里的全部局部变量(也就是键)
    for i in range(16):
        prepare_list['list_' + str(i)] = []  #创建对象list_0, list_1,list_2 .....
        prepare_list['list_' + str(i)].append(('我是第' + str(i)) + '个list')  #为这些键添加数据
    print(type(prepare_list['list_0']))  #打印类型
    print(prepare_list['list_0'])  #打印值
    print(prepare_list['list_1'])
    print(prepare_list['list_2'])
    print(prepare_list['list_3'])

    运行结果

    <class 'list'>
    ['我是第0个list']
    ['我是第1个list']
    ['我是第2个list']
    ['我是第3个list']

    从结果可以看出 prepare_list['list_0'] 是列表(list)类型,其他的也是列表(list)类型,说明实现了创建动态变量,并在每个列表添加数据(append函数)

    总结:

    想要创建动态变量实现创建不同列表

    1、定义空字典

    2、利用locals()函数返回当前位置的全部局部变量

    3、创建:每一个 变量名(键)的对象

    4、追加数据

    参考链接

    展开全文
  • Python 动态生成变量名

    万次阅读 2015-08-25 18:29:50
    如果你想生成v1,v2...v100这一百个变量,使用其他静态编译语言只能在代码中手动写出这100个变量名,但是在python中可以使用循环方便地动态生成python中有一个函数locals(),定义是: locals(...)  locals() -> ...

    如果你想生成v1,v2...v100这一百个变量,使用其他静态编译语言只能在代码中手动写出这100个变量名,但是在python中可以使用循环方便地动态生成。

    python中有一个函数locals(),定义是:

    locals(...)

        locals() -> dictionary

        

        Update and return a dictionary containing the current scope's local variables.


    即返回当前作用域的所有变量

    所以可以用这个函数来创建变量


    代码:

    for i in range(4):
        name='v'+str(i)
        locals()['v'+str(i)]=i
    
    print v1,v2,v3

    输出为1 2 3

    展开全文
  • 前言需求:必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫:arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字...

    前言

    需求:

    必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫:

    arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字,太累了,而且增加了代码的冗余性,灵活性也不强,所以有没有一种方法是能动态创建list名称的呢?答案是有的!而与之对应,既然要对上面的列表动态操作,肯定是少不了动态去解析list名称。所以下面开始简介方法。

    python 动态生成变量名

    locals函数

    代码之前,先简介一个函数:

    locals() 函数会以字典类型返回当前位置的全部局部变量。

    菜鸟上的例子:

    >>>def runoob(arg): # 两个局部变量:arg、z

    ... z = 1

    ... print (locals())

    ...

    >>> runoob(4)

    {'z': 1, 'arg': 4} # 返回一个名字/值对的字典

    下面用自己的例子来实现下,目标:动态创建名字为list_0到list_15的16个list列表:

    关键代码:

    # 第一步 准备locals函数

    prepare_list = locals()

    """

    第二步 循环16次,从0-15赋值给locals函数对应的变量prepare_list

    prepare_list是一个字典,所以将我们需要的列表名称作为key值传入

    """

    for i in range(16):

    arriage_list['list_' + str(i)] = []

    测试代码:

    def test_list_pre():

    prepare_list = locals()

    for i in range(16):

    prepare_list['list_' + str(i)] = []

    prepare_list['list_' + str(i)].append(('我是第' + str(i)) + '个list')

    print(prepare_list['list_0'])

    print(prepare_list['list_1'])

    print(prepare_list['list_2'])

    print(prepare_list['list_3'])

    if __name__ == '__main__':

    test_list_pre()

    实验截图:

    实际证明,已经动态的每次往list插入了值。

    python 动态获取变量的变量名

    需求目标:如果有了上面的动态命名list,那么当动态获取变量的变量名,就需要如下的操作:

    利用python原生的inspect库来实现:

    内核代码:

    import inspect

    def get_variable_name(variable):

    callers_local_vars = inspect.currentframe().f_back.f_locals.items()

    return [var_name for var_name, var_val in callers_local_vars if var_val is variable]

    测试代码:

    def get_variable_name(variable):

    callers_local_vars = inspect.currentframe().f_back.f_locals.items()

    return [var_name for var_name, var_val in callers_local_vars if var_val is variable]

    if __name__ == '__main__':

    prepare_list = locals()

    for i in range(16):

    prepare_list['list_' + str(i)] = []

    prepare_list['list_' + str(i)].append(('我是第' + str(i)) + '个list')

    a = get_variable_name(prepare_list['list_0']).pop()

    b = get_variable_name(prepare_list['list_1']).pop()

    print(a)

    print(b)

    实验截图:

    以上这篇python 动态生成变量名以及动态获取变量的变量名方法就是小编共享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持乐购源码。

    展开全文
  • 前言需求:必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫:arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字...

    前言

    需求:

    必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫:

    arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字,太累了,而且增加了代码的冗余性,灵活性也不强,所以有没有一种方法是能动态创建list名称的呢?答案是有的!而与之对应,既然要对上面的列表动态操作,肯定是少不了动态去解析list名称。所以下面开始介绍方法。

    python 动态生成变量名

    locals函数

    代码之前,先介绍一个函数:

    locals() 函数会以字典类型返回当前位置的全部局部变量。

    菜鸟上的例子:

    >>>def runoob(arg): # 两个局部变量:arg、z

    ... z = 1

    ... print (locals())

    ...

    >>> runoob(4)

    {'z': 1, 'arg': 4} # 返回一个名字/值对的字典

    1

    2

    3

    4

    5

    6

    下面用自己的例子来实现下,目标:动态创建名字为list_0到list_15的16个list列表:

    关键代码:

    # 第一步 准备locals函数

    prepare_list = locals()

    """

    第二步 循环16次,从0-15赋值给locals函数对应的变量prepare_list

    prepare_list是一个字典,所以将我们需要的列表名称作为key值传入

    """

    for i in range(16):

    arriage_list['list_' + str(i)] = []

    1

    2

    3

    4

    5

    6

    7

    8

    测试代码:

    def test_list_pre():

    prepare_list = locals()

    for i in range(16):

    prepare_list['list_' + str(i)] = []

    prepare_list['list_' + str(i)].append(('我是第' + str(i)) + '个list')

    print(prepare_list['list_0'])

    print(prepare_list['list_1'])

    print(prepare_list['list_2'])

    print(prepare_list['list_3'])

    if __name__ == '__main__':

    test_list_pre()

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    实验截图:

    实际证明,已经动态的每次往list插入了值。

    python 动态获取变量的变量名

    需求目标:如果有了上面的动态命名list,那么当动态获取变量的变量名,就需要如下的操作:

    利用python原生的inspect库来实现:

    核心代码:

    import inspect

    def get_variable_name(variable):

    callers_local_vars = inspect.currentframe().f_back.f_locals.items()

    return [var_name for var_name, var_val in callers_local_vars if var_val is variable]

    1

    2

    3

    4

    5

    测试代码:

    def get_variable_name(variable):

    callers_local_vars = inspect.currentframe().f_back.f_locals.items()

    return [var_name for var_name, var_val in callers_local_vars if var_val is variable]

    if __name__ == '__main__':

    prepare_list = locals()

    for i in range(16):

    prepare_list['list_' + str(i)] = []

    prepare_list['list_' + str(i)].append(('我是第' + str(i)) + '个list')

    a = get_variable_name(prepare_list['list_0']).pop()

    b = get_variable_name(prepare_list['list_1']).pop()

    print(a)

    print(b)

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    实验截图:

    以上。。。。完了

    ---------------------

    作者:sy_y

    来源:CSDN

    原文:https://blog.csdn.net/s740556472/article/details/80928849

    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 前言需求:必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫:arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字...
  • python 动态生成变量名以及动态获取变量的变量名

    万次阅读 多人点赞 2018-07-05 16:19:04
    必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫: arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字,太累了...
  • 【导语】:必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫:arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字...
  • 【导语】:必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫:arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字...
  • Python循环创建多个变量, 如创建 a1= 、a2= 、a3= 、a4= 、a5= 或 self.a1= 、self.a2= 、 self.a3=一. 可以通过python的内置函数locals 来完成locals是python的内置函数,他可以以字典的方式去访问局部和全局...
  • Python循环创建多个变量, 如创建 a1= 、a2= 、a3= 、a4= 、a5= 或 self.a1= 、self.a2= 、 self.a3=一. 可以通过python的内置函数locals 来完成locals是python的内置函数,他可以以字典的方式去访问局部和全局...
  • Python动态生成变量

    千次阅读 2019-08-05 16:18:28
    Python循环创建多个变量, 如创建 a1= 、a2= 、a3= 、a4= 、a5= 或 self.a1= 、self.a2= 、 self.a3= 一. 可以通过python的内置函数locals 来完成 locals是python的内置函数,他可以以字典的方式去访问局部和全局...
  • Python 动态生成变量

    万次阅读 2017-09-18 09:26:29
    Python循环创建多个变量, 如创建 a1= 、a2= 、a3= 、a4= 、a5= 或 self.a1= 、self.a2= 、 self.a3= 一. 可以通过python的内置函数locals 来完成 locals是python的内置函数,他可以以字典的方式去访问局部...
  • 当一个函数中需要的参数、变量个数不确定时,需要根据需求动态生成变量并赋予响应的值,这时可以用到locals()这个函数 locals以字典的形式返回当前函数运行环境下的全部变量 字典的key是变量名 字典的value是变量...
  • 【转载】 Python动态生成变量

    千次阅读 2019-10-05 12:08:21
    Python循环创建多个变量, 如创建 a1= 、a2= 、a3= 、a4= 、a5= 或 self.a1= 、self.a2= 、 self.a3= 一. 可以通过python的内置函数locals 来完成 locals是python的内置函数,他可以以字典的方式去访问局部和...
  • Python 动态定义变量名

    2019-11-22 13:55:16
    目的:实现根据传入的参数,如 n=6,动态生成6个变量名,可以在后续程序中调用使用 Python 动态定义变量名 1、利用命名空间 利用命名空间动态赋值 在Python的命名空间中,将变量名与值存储在字典中, 可以通过...
  • python 动态生成一系列变量名

    千次阅读 2019-10-04 09:50:17
    python 中要动态生成一系列变量名,要写一个程序,让a1=1,a2=2,… a100=100通常类似于matlab 中,可以使用eval,但是实际上根本不需要这种危险的东西,因为Python变量名就是一个字典的key而已。要获取这个字典,...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 124
精华内容 49
关键字:

python动态生成变量名

python 订阅