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
 
awk引用外部变量Selenium控制浏览器
  • Twikoo
  • Giscus
  • Cusdis