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

如何将文本文件中的数据存储为Python整数列表

解决方案

你可以按行读取文件内容,拆分每行的标识与数字部分,将字符串数字转为整数列表后,赋值给对应变量。这里提供两种实用方法:

方法一:直接赋值对应变量

with open('input.txt', 'r') as f:
    for line in f:
        line = line.strip()  # 移除换行符与首尾空格
        if not line:
            continue  # 跳过空行
        # 按冒号拆分,只拆分一次,避免数字中出现冒号的极端情况
        key, nums_str = line.split(':', 1)
        # 将逗号分隔的字符串数字转为整数列表
        nums = list(map(int, nums_str.split(',')))
        # 根据标识赋值到对应变量
        if key == 'min':
            min_list = nums
        elif key == 'avg':
            avg_list = nums
        elif key == 'max':
            max_list = nums

# 验证结果
print(min_list)  # 输出: [1, 2, 3, 4, 5, 7, 8, 9]
print(avg_list)  # 输出: [1, 2, 3, 4]
print(max_list)  # 输出: [1, 2, 3, 4, 5, 1, 2, 3, 44, 55, 32, 12]

注意:这里用min_list而非min作为变量名,因为min是Python内置函数,直接覆盖可能导致后续代码出错。

方法二:用字典存储(更适合扩展)

如果后续可能新增更多标识(如sum、median等),用字典存储会更灵活,无需编写大量条件判断:

data = {}
with open('input.txt', 'r') as f:
    for line in f:
        line = line.strip()
        if not line:
            continue
        key, nums_str = line.split(':', 1)
        data[key] = list(map(int, nums_str.split(',')))

# 按需提取变量
min_list = data['min']
avg_list = data['avg']
max_list = data['max']

你的原代码问题分析

你之前的代码input.strip().split(',')会将整个文件内容按逗号拆分,得到类似['min:1', '2', '3', ..., 'max:1', '2', ...]的大列表,无法区分数字所属的标识。正确逻辑是先按行拆分文件内容,再单独处理每行的标识与数字部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:30:53