如何在布尔值连续序列中断时递增计数器并为元素标记编号?
问题解决:为连续相同值的分组添加序号
输入数据
False True True True True False False False False False False True True True True False False False False False False False
期望输出
False 1 True 2 True 2 True 2 True 2 False 3 False 3 False 3 False 3 False 3 False 3 True 4 True 4 True 4 True 4 False 5 False 5 False 5 False 5 False 5 False 5 False 5
原代码问题分析
你的代码存在两个核心问题:
- 仅在值发生变化时打印上一组内容,导致最后一组数据完全没有输出;
- 使用
current_count统计的是组内元素数量,而需求是为每个连续相同值的分组分配递增的组序号,而非组内计数。
修正后的代码
current_value = None group_number = 0 input_array = [False, True, True, True, True, False, False, False, False, False, False, True, True, True, True, False, False, False, False, False, False, False] for value in input_array: if value != current_value: group_number += 1 current_value = value print(f"{value}\t{group_number}")
代码说明
- 用
group_number记录当前分组的序号,初始为0; - 遍历每个元素时,若当前值与上一个值不同,就将组序号加1,并更新当前记录的值;
- 无论值是否变化,都直接打印当前元素和对应的组序号,确保每个元素都能输出对应结果。
内容的提问来源于stack exchange,提问作者user_12
相关产品推荐
相关产品推荐

