Python遍历整数列表按规则拼接带短横线字符串的实现问题
实现Python整数列表按规则拼接的方法
实现思路
- 核心逻辑是将列表按「非0数字作为新分段起点,后续0归入当前分段」的规则拆分,再用短横线拼接所有分段,完全匹配需求的输出规则
完整实现代码
list_of_integers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9] def concat_by_rule(int_list): # 处理空列表边界 if not int_list: return "" segments = [] current_segment = [] for num in int_list: if num != 0: # 遇到非0值则保存上一个分段,开启新分段 if current_segment: segments.append(''.join(map(str, current_segment))) current_segment = [num] else: # 0直接追加到当前分段末尾 current_segment.append(num) # 追加最后一个剩余分段 if current_segment: segments.append(''.join(map(str, current_segment))) return '-'.join(segments) result = concat_by_rule(list_of_integers) print(result) # 输出结果:000-20-4-60-8000-1-9
补充说明
- 全程使用Python标准库实现,无第三方依赖
- 兼容多种边界场景:比如输入
[1,0,2,0,0]会输出10-200,输入全0列表[0,0,0]会输出000,输入开头非0列表[2,0,3]会输出20-3,均符合规则要求
内容的提问来源于stack exchange,提问作者42Dugg
相关产品推荐
相关产品推荐

