Python如何将含整数的嵌套子列表转换为指定格式字符串?
解决方案
分步实现代码
# 定义输入列表 input_list = [[[0], [0], [0], [0], [0], [0], '\n'], [[0], [1], [0], [0], [0], [0], '\n'], [[0], [0], [0], [0], [0], [0], '\n'], [[0], [0], [0], [0], [0], [0]]] # 初始化存储每一行字符串的列表 processed_lines = [] for row in input_list: # 过滤掉每行中的'\n'元素,只保留包含整数的子列表 valid_items = [item for item in row if isinstance(item, list)] # 将每个子列表中的整数转为字符串并拼接成一行 line_str = ''.join(str(item[0]) for item in valid_items) processed_lines.append(line_str) # 将所有行用换行符连接,再包裹双引号得到最终结果 final_result = f'"{"\n".join(processed_lines)}"' print(final_result)
代码说明
- 过滤无效元素:遍历输入列表的每一行,用列表推导式过滤掉其中的
'\n',只保留存储整数的子列表。 - 拼接单行字符串:对每行的有效子列表,取出其中的整数(每个子列表只有一个元素),转为字符串后用
join()拼接成连续的数字字符串。 - 组合所有行:把处理好的每一行用
'\n'连接,最后用双引号包裹,得到与期望一致的输出格式。
简化版代码(一行实现)
如果追求简洁,可以用嵌套的生成器表达式完成全部操作:
input_list = [[[0], [0], [0], [0], [0], [0], '\n'], [[0], [1], [0], [0], [0], [0], '\n'], [[0], [0], [0], [0], [0], [0], '\n'], [[0], [0], [0], [0], [0], [0]]] final_result = f'"{"\n".join("".join(str(num[0]) for num in filter(lambda x: isinstance(x, list), row)) for row in input_list)}"'
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

