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

Python如何提取列表中以指定字符串开头的元素

你所写的前缀匹配筛选方式完全可以实现需求,在此基础上可以做以下优化,并补充导出CSV的完整实现:

一、筛选逻辑优化

你现有代码存在两个可优化的细节:

  • 用range(len(list_x))遍历列表属于冗余写法,直接迭代元素更简洁
  • 匹配到的字符串前缀和内容是用制表符分隔的,可直接拆分提取内容,避免后续导出CSV还要二次处理

基础优化版本

name_list = []
file_number_list = []
subject_list = []
held_list = []
pages_list = []
date_list = []

# 直接迭代list_x中的每个元素
for item in list_x:
    if item.startswith('NAME'):
        # 拆分制表符,只取后面的内容部分
        name_list.append(item.split('\t', 1)[1])
    elif item.startswith('FILE NUMBER'):
        file_number_list.append(item.split('\t', 1)[1])
    elif item.startswith('SUBJECT'):
        subject_list.append(item.split('\t', 1)[1])
    elif item.startswith('HELD'):
        held_list.append(item.split('\t', 1)[1])
    elif item.startswith('PAGES'):
        pages_list.append(item.split('\t', 1)[1])
    elif item.startswith('DATE ADDED'):
        date_list.append(item.split('\t', 1)[1])

精简通用版本

如果后续需要新增匹配字段,推荐用字典统一管理,避免定义大量单独的列表:

# 定义需要匹配的字段和对应存储列表的映射
fields = {
    'NAME': [],
    'FILE NUMBER': [],
    'SUBJECT': [],
    'HELD': [],
    'PAGES': [],
    'DATE ADDED': []
}

for item in list_x:
    for prefix, storage_list in fields.items():
        if item.startswith(prefix):
            storage_list.append(item.split('\t', 1)[1])
            break
# 后续取值直接调用 fields['NAME'] 即可
二、导出CSV实现

内置csv模块实现(无需额外安装依赖)

import csv
import itertools

# 按行合并所有列的数据,字段数量不对等时缺失值留空
rows = itertools.zip_longest(
    name_list,
    file_number_list,
    subject_list,
    held_list,
    pages_list,
    date_list,
    fillvalue=''
)

# 写入CSV文件,utf-8-sig编码兼容Excel打开不乱码
with open('司法案例数据.csv', 'w', encoding='utf-8-sig', newline='') as f:
    writer = csv.writer(f)
    # 写入表头
    writer.writerow(['案件名称', '文件编号', '主题', '判决结果', '页数', '收录日期'])
    # 写入所有行数据
    writer.writerows(rows)

pandas实现(已安装pandas时更便捷)

import pandas as pd

df = pd.DataFrame({
    '案件名称': name_list,
    '文件编号': file_number_list,
    '主题': subject_list,
    '判决结果': held_list,
    '页数': pages_list,
    '收录日期': date_list
})

df.to_csv('司法案例数据.csv', encoding='utf-8-sig', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:27:03