Python如何在嵌套列表的每个元素前添加指定字符串并逐行输出
Python嵌套列表遍历输出解决方案
错误原因分析
你当前编写的单层循环只能遍历到嵌套列表的外层,每次循环拿到的n是完整的子列表(比如第一次循环拿到的是['James', 'Logan', 'Timothy']),而非单个名字,所以输出不符合要求。
实现方案
方案1:双层for循环(最直观易理解)
直接两层遍历,先取内层子列表,再取单个名字输出:
names = [['James', 'Logan', 'Timothy'], ['Ander', 'John', 'Henry']] for sub_list in names: for name in sub_list: print(f'His name is: {name}')
方案2:展平列表后遍历
借助标准库itertools.chain先把嵌套列表展平为一维结构,再遍历输出,不需要写两层循环:
from itertools import chain names = [['James', 'Logan', 'Timothy'], ['Ander', 'John', 'Henry']] for name in chain.from_iterable(names): print(f'His name is: {name}')
方案3:列表推导式批量生成后输出
用双层列表推导式一次性生成所有需要打印的字符串,再拼接换行输出:
names = [['James', 'Logan', 'Timothy'], ['Ander', 'John', 'Henry']] print('\n'.join([f'His name is: {name}' for sub in names for name in sub]))
内容的提问来源于stack exchange,提问作者jarvis
相关产品推荐
相关产品推荐

