如何在Python循环中通过列表名称变量遍历多个列表?
解决方法
直接通过字符串拼接来获取变量名的方式并不推荐,这种做法会降低代码可读性,还容易引发意外错误。更稳妥的是用以下两种方式实现需求:
方法1:将列表放入统一列表遍历(无需用到列表名称)
如果不需要使用list_1这类名称标识,直接把三个列表放进一个大列表循环即可:
list_1 = [1, 2, 3] list_2 = [4, 5, 6] list_3 = [7, 8, 9] for lst in [list_1, list_2, list_3]: # 示例操作:打印列表内容 print(lst) # 也可以遍历列表元素做处理 for item in lst: print(f"元素:{item}")
方法2:用字典关联名称与列表(需要用到列表名称时)
如果循环中需要同时获取列表的名称(比如输出“正在处理list_1”这类提示),可以用字典存储名称和对应列表的映射:
list_1 = [1, 2, 3] list_2 = [4, 5, 6] list_3 = [7, 8, 9] # 建立名称到列表的映射 list_map = { 'list_1': list_1, 'list_2': list_2, 'list_3': list_3 } for name, lst in list_map.items(): print(f"正在处理 {name}") # 示例操作:给每个列表添加标记元素 lst.append('已处理') print(lst)
不推荐的方法(仅作了解)
如果一定要通过字符串拼接获取变量,可以用globals()或locals()函数,但这种写法不建议在正式代码中使用:
list_1 = [1, 2, 3] list_2 = [4, 5, 6] list_3 = [7, 8, 9] for i in range(1, 4): var_name = f'list_{i}' lst = globals()[var_name] # 执行操作 print(f"{var_name} 的内容:{lst}")
内容的提问来源于stack exchange,提问作者ranjit more
相关产品推荐
相关产品推荐

