type
status
date
slug
summary
tags
category
icon
password
Quection
今天遇到一个问题,需要读入多个csv文件为DataFrame,但是逐个写代码读取太过麻烦,就像定义一个变量名列表,然后通过循环实现逐个变量的复制。
TSET1
但是在世纪彩做种出现一个问题
这种方法会直接将列表中的item全部改为1,
print(lst)
结果为[1,1,1,1,1,1]
TEST2
如此运行的结果无错误提示,但循环运行结束后,调用成了问题,显示变量未定义。
原因在于在运行过程中列表中的变量均为for循环中的局部变量,不便直接使用,无奈继续想办法。
TEST3
百度一下,果然也有菜鸟遇到了同样问题,点进去答案极其简单,用字典,例子很简单,最后再写,这里列出来一个我试过的字典使用方法,也不是很理想:
运行依然不会报错,但是调用变量的时候并不方便,因为每一个列表中的item作为变量时,并不是单独存在的,而是作为字典中的key存在的,因此每次调用变量时需要写成调用字典“键”的方式,如
diccc['a']
。“标准”答案
百度结果给出的方法,使用了python内置
locals()
函数,结果完美,将每一个变量和变量值放在一个匿名字典中,调用只需要输入变量名(列表item)即可。locals()函数官方说明
Signature: locals()
Docstring:
Return a dictionary containing the current scope's local variables.
返回包含当前作用域的局部变量的字典。
NOTE: Whether or not updates to this dictionary will affect name lookups in the local scope and vice-versa is implementation dependent and not covered by any backwards compatibility guarantees.
Type: builtin_function_or_method