python - 根据子字符串拆分列表元素
问题描述
如何根据点之前的字符串拆分此元素中的元素,而无需在代码中显式编写它?
lst = ['ds_a.cola','ds_a.colb','ds_b.cola','ds_b.colb']
因为“ds”有两种变体。我想要两个列表。
lst_dsa = ['ds_a.cola','ds_a.colb']
lst_dsb = ['ds_b.cola','ds_b.colb']
我的旧代码是:
lst_dsa = []
lst_dsb = []
for item in lst :
if "ds_a" in item:
lst_dsa.append(item)
else:
lst_dsb.append(item)
但我不能使用它,因为可能有超过 2 个,比如 ds_c,ds_d.... 我如何在 python 中实现这一点?
解决方案
使用字典并保存数据
from collections import defaultdict
lst = ['ds_a.cola','ds_a.colb','ds_b.cola','ds_b.colb','ds_x.cola','ds_x.colb']
data = defaultdict(list)
for entry in lst:
a,_ = entry.split('.')
data[a].append(entry)
print(data)
输出
defaultdict(<class 'list'>, {'ds_a': ['ds_a.cola', 'ds_a.colb'], 'ds_b': ['ds_b.cola', 'ds_b.colb'], 'ds_x': ['ds_x.cola', 'ds_x.colb']})
推荐阅读
- html - 在 WordPress 的 PDF 文件下载链接中检测到 HTML 恶意文件
- java - 同步在在线交易中的工作原理
- cmake - Eigen cmake 需要“target_link_libraries”,即使它只是模板
- python - 无法从给定格式中提取出生日期
- selenium - 使用酱实验室驱动时的睡眠时间范围?
- powershell - 向用户添加多个代理地址
- scala - 默认参数值方法位置
- sql - 初学者 SQL - 连接在两个表中都有标识符的表
- sql - SQL查询按接近值排序
- python - 基于日期在 R 或 Python 中粘贴因子变量值 - 创建学校假期