网站首页 > 技术文章 正文
【导语】:必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫:arriage_list_0=[],第二个叫arriage_list_1=[]……..依次类推,但是我又不想手动的去写16个这样的名字,太累了,而且增加了代码的冗余性,灵活性也不强,所以有没有一种方法是能动态创建list名称的呢?答案是有的!而与之对应,既然要对上面的列表动态操作,肯定是少不了动态去解析list名称。所以下面开始介绍方法。
一、python 动态生成变量名 —— locals()
代码之前,先介绍一个函数:
locals() 函数会以字典类型返回当前位置的全部局部变量。
# 两个局部变量:arg、z
def runoob(arg):
z = 1
print(locals())
runoob(4)
结果:{'arg': 4, 'z': 1}
下面动态创建名字为list_0到list_15的16个list列表:
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()
结果:
['我是第0个list']
['我是第1个list']
['我是第2个list']
['我是第3个list']
实际证明,已经动态的每次往list插入了值
二、动态获取变量的变量名
如果有了上面的动态命名list,那么当动态获取变量的变量名,就需要如下的操作:
利用python原生的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]
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)
结果:
list_0
list_1
希望本文的内容对大家的学习或者工作能带来一定的帮助,每天进步一点点,加油。
猜你喜欢
- 2025-07-21 Python基础课堂 第二节 变量 #python编程
- 2025-07-21 python变量的秘密?(python的变量有哪些)
- 2025-07-21 为什么在Python3里有的变量前面有个*号呢?看完我懂了
- 2025-07-21 Python变量大变身!多次赋值后,内存空间竟然“换房”了?
- 2025-07-21 Python变量揭秘:内存里的“带标签盒子”,三要素缺一不可!
- 2025-07-21 Python教程(十三):变量作用域(python中变量作用域)
- 2025-07-21 Python自动化办公学习笔记11——布尔类型、变量赋值、类型转换
- 2025-07-21 Python教程(四):变量和数据类型简单解释
- 283℃Python短文,Python中的嵌套条件语句(六)
- 280℃python笔记:for循环嵌套。end=""的作用,图形打印
- 279℃PythonNet:实现Python与.Net代码相互调用!
- 274℃Python实现字符串小写转大写并写入文件
- 273℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 133℃原来2025是完美的平方年,一起探索六种平方的算吧
- 118℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 111℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 最近发表
-
- python tkinter tk窗口组件的基础用法介绍
- 一起学python:Tkinter——轻装上阵,快速入门
- Python GUI 编程:tkinter 初学者入门指南——窗格窗口
- Python GUI 编程:tkinter 初学者入门指南——Ttk 小部件
- Python,Tkinter的基础使用(python3 tkinter)
- 图文并茂:Python Tkinter从入门到高级实战全解析
- python tkinter桌面应用gui库基础介绍
- Python tkinter写个画图板,一个坑和实用知识解析
- python tkinter组件概述(python的tkinter模块详解)
- Flask中使用Blinker实现信号传递(flask传数据给前端)
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)