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

Python如何基于嵌套索引列表批量移除字符串指定区间内容

多索引区间批量移除字符串内容方案

你之前的实现失效的核心原因是依赖按空格拆分单词的逻辑,一旦字符串内容包含特殊符号、单词和符号绑定,拆分后的单词就无法和待删除内容匹配,导致过滤失败。

正确的实现逻辑完全基于索引位置处理,不受字符串内容格式影响:

  • 先将所有待删除的索引区间按起始位置倒序排序,从字符串末尾往头部方向删除,避免删除前序区间导致后续索引偏移的问题
  • 逐段拼接保留的字符串内容即可

代码实现

def remove_intervals(s: str, intervals: list[list[int]]) -> str:
    # 按区间起始位置倒序排序
    sorted_intervals = sorted(intervals, key=lambda x: x[0], reverse=True)
    res = s
    for start, end in sorted_intervals:
        res = res[:start] + res[end:]
    return res

# 测试用例1 原示例
sentence = 'Two Dogs and Three Cats'
list_of_indices = [[0,3], [13, 18]]
print(remove_intervals(sentence, list_of_indices))
# 输出:Dogs and  Cats

# 测试用例2 带特殊符号的场景
sentence2 = ':Two: Dogs and Three Cats'
list_of_indices2 = [[1,4]] # 对应Two的索引位置
print(remove_intervals(sentence2, list_of_indices2))
# 输出::: Dogs and Three Cats

该方案支持任意数量的待删除区间,就算区间存在重叠也能正常处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:54:02