You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于双空白字符分割字符串并生成多个列表?

解决Python字符串按双换行分割为多列表的问题

你原来的代码存在几个关键问题,导致无法实现需求:

  • 误用*args可变参数,实际只需要接收单个字符串输入
  • 每次循环都重置new_list,之前收集的内容会被清空
  • 完全没处理双换行的分割逻辑,只是简单判断end存在就追加元素,根本没实现拆分功能

下面是能满足需求的实现代码:

def split_to_lists(text):
    # 按双换行分割成独立块
    blocks = text.split('\n\n')
    result = []
    for block in blocks:
        # 拆分每行、过滤空行并去除首尾空白
        lines = [line.strip() for line in block.split('\n') if line.strip()]
        # 转成整数列表,非空则加入结果
        if lines:
            num_list = [int(num_str) for num_str in lines]
            result.append(num_list)
    return result

# 测试示例
my_text = '101\n102\n103\n\n111\n112\n113\n'
output = split_to_lists(my_text)
# 按要求格式输出
for lst in output:
    print(lst)

代码说明

  1. text.split('\n\n'):将原字符串按双换行分割成两个核心块,得到['101\n102\n103', '111\n112\n113\n']
  2. 列表推导式处理每行:拆分每个块为单行,过滤掉空行(比如末尾单独的换行符),同时去除字符串首尾空白
  3. 转换为整数列表:将每个有效行的字符串转成整数,组成子列表后加入最终结果
  4. 过滤空块:避免因字符串开头/结尾的双换行产生空列表

运行后会输出:

[101, 102, 103]
[111, 112, 113]

内容的提问来源于stack exchange,提问作者Shane Heupel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 20:25:13