python - 使用字符串识别对象,python 3
问题描述
我在几个案例中遇到了一个问题,但还没有找到一个优雅的解决方案。我希望能够使用其名称作为字符串来选择一个对象(任何类型)。下面的示例显示我想通过遍历它们名称的最后一个字符来访问三个预定义列表,以执行一些功能——在这种情况下提取列表的第二个元素并将其附加到一个新列表中。
my_list_1 = [1,2,3]
my_list_2 = [4,5,6]
my_list_3 = [7,8,9]
my_result = []
for i in range (1,4):
my_str = 'my_list_'+str (i)
my_object = object(my_str)
x = my_object[1]
my_result.append(x)
print my_result
这段代码当然不起作用,因为“my_object = object(my_str)”行无法找到一种方法来使用其名称作为字符串来识别列表。
有没有人设法克服类似的问题?
谢谢
解决方案
您可以使用locals()
内置来访问当前的本地符号表,以 dict 的形式返回。所以:
my_list_1 = [1,2,3]
my_list_2 = [4,5,6]
my_list_3 = [7,8,9]
my_result = []
L = locals()
for i in range (1,4):
my_str = 'my_list_' + str(i)
my_result.append(L[my_str][1])
print my_result
推荐阅读
- java - 将多个节点存储到 Firebase 实时数据库
- python - 在 For 循环 Matplotlib 中创建子图
- c++ - 配置 Visual Studio 代码以在 mingw32 和 cmake 上使用 sdl2 的正确方法是什么
- spring-boot - 使用 Spring Security 5 OAuth2 实现 Keyclock 授权服务器
- java - 从属性中获取值时,属性必须是常量
- python-3.x - pyqt5 防止图像溢出 qlabel
- python - 如何使用递归实现这段 python 代码?
- python - 查询以检查值是否存在于一组列中
- python - 如何对字符串列表中的元素进行分组并将它们转换为字典?
- python - 从python中的word文件中读取