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

需求:移除列表元素中数字及数字后内容的通用Python解决方案

问题描述

现有列表:

List=['hello-67.33-yo', 'bye-67-27.34-jk', 'hi56']

当前实现代码:

g = "".join(List)
S = g.split('-67')[:-1]

预期输出:

['hello','bye', 'hi']

当前逻辑仅能正确处理列表中的2个元素,现寻求可处理所有元素的通用方案,需移除每个元素里的数字及数字之后的所有内容。


通用解决方案

可以用正则表达式对列表内每个元素单独处理,精准提取数字出现前的文本内容:

import re

original_list = ['hello-67.33-yo', 'bye-67-27.34-jk', 'hi56']
result = [re.match(r'^\D+', item).group() for item in original_list]
print(result)

代码说明

  • re.match(r'^\D+', item):匹配每个字符串开头的所有非数字字符(\D代表非数字,^限定匹配范围从字符串开头开始)
  • .group():提取匹配到的有效内容
  • 列表推导式遍历原列表,完成批量处理

运行后输出:

['hello', 'bye', 'hi']

如果存在开头就是数字的元素(示例未包含这类情况),可以添加判断避免报错:

import re

original_list = ['hello-67.33-yo', 'bye-67-27.34-jk', 'hi56', '123test']
result = []
for item in original_list:
    match = re.match(r'^\D+', item)
    result.append(match.group() if match else '')
print(result)

输出:

['hello', 'bye', 'hi', '']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:50:20