如何统计0/1列表中(0,0)与(0,1)连续元素对的数量?
计算二进制列表中指定连续元素对的数量
你可以通过以下几种简单方法实现需求:
方法一:利用zip快速生成元素对并统计
这种方法代码简洁,借助Python内置的zip函数将列表与自身切片配对,直接得到所有连续元素对,再用count方法统计目标对的数量:
MyList = [0,0,0,0,1,0,1,0,0,0,1,1,0] # 生成所有连续相邻元素对 consecutive_pairs = list(zip(MyList, MyList[1:])) # 统计(0,0)和(0,1)的出现次数 count_00 = consecutive_pairs.count((0, 0)) count_01 = consecutive_pairs.count((0, 1)) print(f"(0,0)连续对数量: {count_00}") # 输出5 print(f"(0,1)连续对数量: {count_01}") # 输出3
原理:MyList[1:]是原列表去掉第一个元素后的新列表,zip(MyList, MyList[1:])会将原列表第i个元素和新列表第i个元素(即原列表第i+1个元素)配对,正好得到所有连续相邻的元素对。
方法二:循环遍历计数(适合理解底层逻辑)
如果需要更直观地看到计数过程,可以用循环遍历列表索引,逐个判断相邻元素:
MyList = [0,0,0,0,1,0,1,0,0,0,1,1,0] count_00 = 0 count_01 = 0 # 遍历到倒数第二个元素即可,避免索引越界 for i in range(len(MyList) - 1): current = MyList[i] next_val = MyList[i+1] if current == 0 and next_val == 0: count_00 += 1 elif current == 0 and next_val == 1: count_01 += 1 print(f"(0,0)连续对数量: {count_00}") # 输出5 print(f"(0,1)连续对数量: {count_01}") # 输出3
这两种方法都能精准得到你需要的统计结果,可根据自身习惯选择使用。
内容的提问来源于stack exchange,提问作者Bogaso
相关产品推荐
相关产品推荐

