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

如何合并Python列表中的连续整数?示例:['a',1,2]转为['a',12]

合并列表中的连续整数

这是个很实用的列表处理需求,我来分享一个简洁的实现思路——核心就是遍历列表时跟踪连续的整数序列,遇到非整数时就把之前收集的整数拼接成一个数,再继续处理后续元素。下面是具体的实现方案:

通用实现函数

我们可以写一个通用函数来处理任意符合这种结构的列表:

def merge_consecutive_integers(lst):
    result = []
    temp_nums = []
    for item in lst:
        if isinstance(item, int):
            # 遇到整数,先转成字符串收集到临时列表(方便后续拼接)
            temp_nums.append(str(item))
        else:
            # 遇到非整数,先处理之前收集的整数(如果有的话)
            if temp_nums:
                merged_num = int(''.join(temp_nums))
                result.append(merged_num)
                temp_nums = []
            # 把当前非整数元素加入结果列表
            result.append(item)
    # 处理列表末尾可能剩下的整数序列(避免遗漏)
    if temp_nums:
        merged_num = int(''.join(temp_nums))
        result.append(merged_num)
    return result

测试你的两个需求

需求1:转换['a',1,2]为['a',12]

直接调用函数就能得到结果:

test_list1 = ['a', 1, 2]
print(merge_consecutive_integers(test_list1))  # 输出: ['a', 12]

需求2:处理给定列表得到目标输出

针对你提供的输入列表,调用函数后就能得到预期结果:

li = ['a',3,4,'b',6,'c',5,1]
li = merge_consecutive_integers(li)
print(li)  # 输出: ['a', 34, 'b', 6, 'c', 51]

逻辑小说明

  • 用temp_nums临时存储连续的整数(转成字符串是为了方便直接拼接);
  • 每次遇到非整数元素时,先检查临时列表是否有内容,有就拼接成整数加入结果,再清空临时列表;
  • 遍历结束后必须再检查一次临时列表,避免列表末尾的整数序列被遗漏;
  • 这个方案兼容单个整数的情况(比如例子中的6,会直接作为单个元素保留)。

内容的提问来源于stack exchange,提问作者Aman Pratap Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:38:56