Python如何提取列表中id字符串后的数字生成纯数字新列表
问题说明
现有定义好的列表ids:
ids = ['id = 1234', 'id=223345', 'id=456', 'id=4562347', 'id=521345678']
需要提取每个字符串中对应的数字部分,生成新列表,预期输出为:
new_ids=['1234', '223345', '456', '4562347', '521345678']
实现方案
原列表里的字符串格式不完全统一,部分元素id、等号、数字之间存在空格,部分没有,下面两种方案都可以兼容两种格式,按需选择即可:
方案1:列表推导式(推荐,无依赖、可读性高)
new_ids = [s.split('=')[-1].strip() for s in ids]
实现逻辑:
- 遍历原列表的每个字符串
- 按等号
=切割字符串,取等号后面的部分 - 用
strip()清除等号后内容首尾的多余空格,适配带空格的格式 - 运行后直接得到符合预期的新列表
方案2:正则匹配(适配更复杂的字符串场景)
如果后续字符串中可能出现其他无关字符,可以直接用正则提取连续数字段,需要先导入正则模块:
import re new_ids = [re.search(r'\d+', s).group() for s in ids]
内容的提问来源于stack exchange,提问作者Даулет Даулетов
相关产品推荐
相关产品推荐

