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

Python如何基于列表元素点号前的子串自动拆分列表

实现方案

推荐使用字典存储动态分组结果,无需提前硬编码所有可能的前缀,可自动适配后续新增的ds_c、ds_d等场景。

方法1:使用collections.defaultdict(代码更简洁)

from collections import defaultdict

lst = ['ds_a.cola','ds_a.colb','ds_b.cola','ds_b.colb']
grouped = defaultdict(list)

for item in lst:
    # 提取点号前的前缀,split第二个参数设为1避免元素含多个点时拆分异常
    prefix = item.split('.', 1)[0]
    grouped[prefix].append(item)

运行后grouped的结构为:

{
    'ds_a': ['ds_a.cola', 'ds_a.colb'],
    'ds_b': ['ds_b.cola', 'ds_b.colb']
}

需要使用某组数据时直接取字典对应key即可:grouped['ds_a'],新增前缀会自动生成对应key,无需修改代码。

方法2:使用原生字典(无需导入模块)

如果不想导入额外模块,可以用字典的setdefault方法实现相同效果:

lst = ['ds_a.cola','ds_a.colb','ds_b.cola','ds_b.colb']
grouped = {}

for item in lst:
    prefix = item.split('.', 1)[0]
    grouped.setdefault(prefix, []).append(item)

可选:单独赋值给指定变量

如果确实需要和原示例一样的单独变量,可以从分组字典中取值:

lst_dsa = grouped.get('ds_a', [])
lst_dsb = grouped.get('ds_b', [])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:39:02