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

如何高效从包含_或-的字符串中提取子串获取墙体及楼层信息

实现方法

直接通过_和-两次拆分字符串即可完成提取,时间复杂度为O(n)(n为列表长度),执行效率很高,具体实现代码如下:

# 输入的原始墙体列表
wall_list = ['W1_1F-12F', 'W2_1F-9F', 'W3_10F-12F']

# 初始化三个结果列表
wall_name = []
floor_from = []
floor_to = []

for wall_str in wall_list:
    # 第一步:按下划线拆分,前半段为墙体名称,后半段为楼层范围
    name, floor_part = wall_str.split('_')
    # 第二步:按横杠拆分楼层范围,得到起始、终止楼层
    start_floor, end_floor = floor_part.split('-')
    # 写入对应结果列表
    wall_name.append(name)
    floor_from.append(start_floor)
    floor_to.append(end_floor)

执行后得到的结果完全符合要求:

  • wall_name 结果:['W1', 'W2', 'W3']
  • floor_from 结果:['1F', '1F', '10F']
  • floor_to 结果:['12F', '9F', '12F']

如果输入格式100%符合规范,也可以用更简洁的写法:

wall_name, floor_from, floor_to = map(list, zip(*(s.split('_')[0], *s.split('_')[1].split('-')) for s in wall_list))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:57:03