Python如何通过main_list元素遍历list_a、list_b,能否单行实现?
实现方法
你定义的main_list中存储的是list_a、list_b的变量名字符串,而非列表对象本身,所以需要先通过变量名获取到对应的列表实例,再遍历元素即可,完全可以用单行代码实现。
无依赖单行实现
无需导入任何模块,直接通过全局变量字典获取列表后嵌套遍历:
[print(item) for list_name in main_list for item in globals()[list_name]]
如果列表是定义在局部作用域中,把代码里的globals()替换为locals()即可正常运行。
借助itertools的更简洁实现
如果允许导入工具模块,可用itertools.chain平铺嵌套结构,代码可读性更高:
from itertools import chain; [print(item) for item in chain.from_iterable(globals()[name] for name in main_list)]
运行上述任意一行代码,都会直接输出你需要的结果:
hii hello hai john david
内容的提问来源于stack exchange,提问作者Aniiya0978
相关产品推荐
相关产品推荐

