如何将Python嵌套列表同位置元素拼接生成指定格式字符串
Python嵌套列表按同索引位置元素拼接的实现方案
你现有代码的逻辑是按行遍历所有子列表的元素,依次追加到字符串中,所以最终得到的是所有元素按行顺序拼接的结果,不符合按相同索引位置拼接的需求。
最简实现方案
利用Python内置的zip()对嵌套列表做解包转置,直接提取所有同索引位置的元素组:
# grid为输入的嵌套列表 result = ' '.join(''.join(col_group) for col_group in zip(*grid))
循环展开版本(方便理解逻辑)
如果需要用显式循环实现,可参考以下写法:
result_parts = [] # 遍历列索引,默认所有子列表长度一致 for col_idx in range(len(grid[0])): current_col_str = '' # 提取每个子列表当前索引的元素拼接 for sub_list in grid: current_col_str += sub_list[col_idx] result_parts.append(current_col_str) # 用空格拼接所有列的结果 result = ' '.join(result_parts)
注意事项
如果你的输入嵌套列表中各子列表长度不一致,可使用itertools.zip_longest代替zip,并自定义补位字符,示例如下:
from itertools import zip_longest # 长度不足的位置用空字符串补全 result = ' '.join(''.join(col_group) for col_group in zip_longest(*grid, fillvalue=''))
内容的提问来源于stack exchange,提问作者polar. B
相关产品推荐
相关产品推荐

