Python嵌套列表按|分隔拼接为每行对应子列表的问题求解
代码问题说明
- 你写的嵌套循环没有在每个子列表处理完成后添加换行符,所有子列表的拼接结果会连在同一行,无法实现一行对应一个子列表的效果
- 手动循环拼接字符串的写法冗余且效率低,Python内置的
str.join()方法是专门用于序列元素拼接的更优选择
修正代码实现
方案1:逐行打印结果(直接输出你要的格式)
delim = "|" for sub_lst in my_list_of_lists: # 拼接当前子列表,末尾加|匹配你原来的输出格式 line = delim.join(sub_lst) + delim print(line)
方案2:将所有结果保存到单个变量中
delim = "|" res_list = [] for sub_lst in my_list_of_lists: line = delim.join(sub_lst) + delim res_list.append(line) # 用换行符拼接所有行 final_res = "\n".join(res_list) print(final_res)
效果验证
运行上述代码后输出结果和你预期的格式完全一致:
1001100|xxx||1100|PAR_200|21651947694|0|0|20210301|20210331|1630,51|1|| 1001110|sss||1110|C-200|20210307|1630,51|1|7252048000136|| 1001115|ddd||1115|21||NO6520058050362|0|08|110433|1630,51|1||| 1001120|fff||1120|MG|||73895137480|| 101100|ees||1100|PAR_200|21653346587|0|0|20210301|20210331|1013,84|1|| 101110|fsc||1110|C-200|20210307|1013,84|1|7252048000136|| 101115|fer||1115|1||LI1600081181694N2K346|0|06|110433|1013,84|1||| 101120|ter||1120|MG|||17651232321||
内容的提问来源于stack exchange,提问作者Tanai Goncalves
相关产品推荐
相关产品推荐

