如何循环处理两个二维列表,合并元素生成指定格式字符串?
问题:合并二维列表生成指定格式字符串
需要合并以下两个二维列表:
dots = [['.', '.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', '.', '.', '.', '.', '.', '.']] spaces = [[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']]
要求每个.之间用三个空格分隔,生成如下格式的多行字符串:
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
我编写了如下代码,但仅能处理第一行:
lists = [a for b in zip(dots[0], spaces[0]) for a in b] line = ''.join(liste)
想了解如何循环处理两个列表中的所有子列表,以生成完整的目标字符串。
解决方案
你只需要在外层遍历dots和spaces的每一对子列表,对每行执行拼接逻辑后,用换行符连接所有行即可。以下是几种实现方式:
方法一:列表推导式一次性生成
# 遍历每行的dot和space子列表,拼接后生成每行字符串 lines = [''.join([a for b in zip(dot_row, space_row) for a in b]) for dot_row, space_row in zip(dots, spaces)] # 用换行符连接所有行得到最终结果 result = '\n'.join(lines) print(result)
方法二:普通循环逐步构建
如果觉得列表推导式可读性差,也可以用常规循环:
result_lines = [] for dot_row, space_row in zip(dots, spaces): # 拼接当前行的字符与空格 current_line = ''.join([a for b in zip(dot_row, space_row) for a in b]) result_lines.append(current_line) # 连接所有行 final_str = '\n'.join(result_lines) print(final_str)
简化优化:无需维护spaces列表
注意到你的spaces列表元素全是三个空格,完全可以省略这个列表,直接用字符串连接方法实现需求,代码更简洁:
# 直接用三个空格连接每行的所有点 lines = [' '.join(row) for row in dots] result = '\n'.join(lines) print(result)
这个方法和前两种效果完全一致,还省去了额外维护spaces列表的麻烦。
内容的提问来源于stack exchange,提问作者zacharie picard
相关产品推荐
相关产品推荐

