如何去除Python字典内列表值中的指定API路径前缀及特殊字符
最简实现方案
核心思路是不需要分别匹配两种路径前缀,直接取所有字符串最后一个/后的内容即可,纯数字字符串不受影响,刚好符合需求,仅需一行推导式组合即可完成:
# 原始字典 dict1 = {5051: ['/api/1/employees/4027', '5051', '/api/1/seats/19014'], 5052: ['/api/1/employees/4048', '5052', '/api/1/seats/19013'], 5053: ['/api/1/employees/4117', '5053', '/api/1/seats/19012'], 5054: ['/api/1/employees/15027', '5054', '/api/1/seats/9765']} # 处理代码 dict1 = {k: [s.rsplit('/', 1)[-1] for s in v] for k, v in dict1.items()}
代码说明
rsplit('/', 1):从字符串右侧开始按/分割,最多分割1次,避免路径其他位置的/干扰结果[-1]:取分割结果的最后一个元素,就是路径末尾的ID内容- 对于本身没有
/的数字字符串(如'5051'),分割后只会得到包含自身的列表,取最后一个元素还是原值,不需要额外做条件判断
处理后输出的字典和要求的结构完全一致。
内容的提问来源于stack exchange,提问作者Ashu
相关产品推荐
相关产品推荐

