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

Python实现从文本文件提取列表并统计列表数量

解决方案

方法一:基于你已读取的字符串处理

如果你已经把整个文件内容读入了data变量,可以按以下步骤处理:

1. 分割出所有列表行

将字符串按换行符拆分,同时过滤掉空行(避免文件末尾空行干扰统计):

# 分割成每行并过滤空行
list_lines = [line.strip() for line in data.split('\n') if line.strip()]

2. 统计列表总数

直接取分割后列表的长度即可:

total_lists = len(list_lines)
print(f"列表总数:{total_lists}")

3. 逐个提取并转换为可操作的Python列表

遍历每一行,去掉首尾的[]符号,拆分出数字字符串后转换为整数列表:

processed_lists = []
for line in list_lines:
    # 去除首尾括号并拆分数字字符串
    num_strings = line.strip('[]').split(',')
    # 转换为整数列表
    num_list = [int(num) for num in num_strings]
    processed_lists.append(num_list)

# 示例:遍历第一个列表的元素
for num in processed_lists[0]:
    print(num)

方法二:逐行读取(适合超大型文件)

如果文件体积很大,一次性读入内存会占用过多资源,推荐用逐行读取的方式,同时完成统计和提取:

processed_lists = []
total_lists = 0

# 用with语句自动管理文件关闭,更安全高效
with open("R1E1.txt", "r") as my_file:
    for line in my_file:
        line = line.strip()
        if not line:
            continue  # 跳过空行
        total_lists += 1
        # 转换为整数列表
        num_strings = line.strip('[]').split(',')
        num_list = [int(num) for num in num_strings]
        processed_lists.append(num_list)

print(f"列表总数:{total_lists}")
# 后续可直接对processed_lists进行业务处理

额外提示

  • 如果文件中存在列表跨行的极端情况,需要通过匹配[和]的成对出现来处理,但从你的示例来看,每个列表单独一行,上述方法完全适用。
  • 若文件中存在非数字的异常内容,可添加异常处理避免程序崩溃:
try:
    num_list = [int(num) for num in num_strings]
except ValueError as e:
    print(f"处理行出错:{line},错误信息:{e}")
    continue

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:52:44