如何将Python字符转为对象:实现列表元素对应变量赋值
实现方法
方法1:直接创建全局变量
通过globals()函数可以直接修改全局命名空间,将列表中的字符串作为变量名,对应的值赋值过去:
import pandas as pd import numpy as np listOfChars = ['feature1','feature2'] listOfBins = [[0,1,2],[15,20,30]] # 配对变量名和对应值,循环创建全局变量 for var_name, var_value in zip(listOfChars, listOfBins): globals()[var_name] = var_value # 验证结果 print(feature1) # 输出: [0, 1, 2] print(feature2) # 输出: [15, 20, 30]
方法2:用字典存储(推荐)
直接创建全局变量容易污染命名空间,还可能覆盖已有变量,更安全的方式是用字典存储这些键值对,既可以通过"变量名"字符串访问,也能避免命名冲突:
import pandas as pd import numpy as np listOfChars = ['feature1','feature2'] listOfBins = [[0,1,2],[15,20,30]] # 构建字典存储映射关系 feature_dict = dict(zip(listOfChars, listOfBins)) # 访问对应值 print(feature_dict['feature1']) # 输出: [0, 1, 2] print(feature_dict['feature2']) # 输出: [15, 20, 30] # 如果确实需要通过变量名直接访问(不推荐),可以更新局部命名空间 # locals().update(feature_dict) # print(feature1)
注意事项
- 直接修改
globals()或locals()存在风险,若列表中的字符串和已有变量名重复,会直接覆盖原有变量,引发意外错误。 - 优先使用字典存储,便于后续维护和管理相关变量,尤其当变量数量较多时优势更明显。
内容的提问来源于stack exchange,提问作者Giampaolo Levorato
相关产品推荐
相关产品推荐

