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

Python长列表处理:插入相邻拼接项、按分块删除指定位置元素

长列表格式修改实现方案

以下实现均为线性时间复杂度,仅需遍历原列表一次,适配超长列表处理场景,无性能问题。


需求1:相邻元素间插入短横线拼接项

  • 处理规则:遍历原列表所有相邻元素对,每两个相邻元素之间插入二者用-连接的拼接项
  • 实现代码:
def insert_concat_items(input_list: list[str]) -> list[str]:
    res = []
    list_len = len(input_list)
    for idx in range(list_len - 1):
        res.append(input_list[idx])
        res.append(f"{input_list[idx]}-{input_list[idx+1]}")
    # 补入原列表最后一个元素
    if list_len > 0:
        res.append(input_list[-1])
    return res

# 测试
origin1 = ['chelsea','manchester','london','liverpool']
print(insert_concat_items(origin1))
  • 运行输出:
['chelsea', 'chelsea-manchester', 'manchester', 'manchester-london', 'london', 'london-liverpool', 'liverpool']

需求2:每5个元素分块删除指定位置项

  • 处理规则:将列表按每5个元素切为一个分块,删除每个分块内的第4、第5个元素,仅保留前3个元素
  • 实现代码:
def trim_number_blocks(input_list: list[str]) -> list[str]:
    res = []
    # 按步长5遍历,对应每个分块的起始位置
    for idx in range(0, len(input_list), 5):
        # 切片取当前分块前3个元素,自动兼容末尾不足5个元素的边界情况
        res.extend(input_list[idx:idx+3])
    return res

# 测试
origin2 = ['10','11','12','13','14','15','16','17','18','19','20','21','22']
print(trim_number_blocks(origin2))
  • 运行输出(和预期结果完全一致):
['10', '11', '12', '15', '16', '17', '20', '21', '22']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:03:27