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

Python新手求助:用for循环和append按换行生成多组整数列表

解决方法

你现有代码的问题很明确:直接遍历输入字符串时,Python会逐个取出每个字符,所以才会把\n、1、0这类单个字符都塞进列表;而且lists = new_list.append(i)完全多余——append()方法返回的是None,这么写只会把lists变量覆盖成无效值。

要实现按空行分组生成整数列表的需求,用for循环和append()可以这么做:

完整代码

def process_data(data_str):
    # 存储最终结果,每个元素对应一个人的整数列表
    result = []
    # 第一步:按空行(连续两个换行符)分割成各组数据字符串
    groups = data_str.split('\n\n')
    # 遍历每个分组
    for group in groups:
        # 临时存储当前分组的整数
        person_data = []
        # 将当前分组按换行符拆成单个数字字符串
        num_strings = group.split('\n')
        # 遍历每个数字字符串
        for num_str in num_strings:
            # 过滤空字符串(避免分组内多余换行产生的无效元素)
            if num_str.strip():
                # 转成整数并添加到当前分组列表
                person_data.append(int(num_str))
        # 将当前分组的整数列表加入最终结果
        result.append(person_data)
    return result

# 测试用的数字字符串
test_data = """1000
2000
3000

4000
5000
6000

7000
8000
9000

10000
"""

# 执行并输出结果
output = process_data(test_data)
for item in output:
    print(item)

运行结果

[1000, 2000, 3000]
[4000, 5000, 6000]
[7000, 8000, 9000]
[10000]

步骤说明

  1. 按空行分组:用data_str.split('\n\n')把整个字符串拆成4个独立分组,每个分组对应一个人的数据。
  2. 拆分单个数字:对每个分组字符串,用split('\n')拆成单个数字的字符串列表,比如第一个分组会得到['1000', '2000', '3000']。
  3. 过滤转换:遍历每个数字字符串,用strip()过滤空字符串(避免分组内多余换行的干扰),再转成整数添加到当前分组的列表中。
  4. 收集结果:把每个分组的整数列表添加到最终结果列表,得到预期的分组结构。

内容的提问来源于stack exchange,提问作者Marie Hanz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:30:59