如何在Python循环内生成[0,0,1,1,...]重复交替序列?
生成[0, 0, 1, 1, ...]交替序列的解决方案
当然可以通过循环内部直接计算的方式生成目标序列,这里提供几种简洁的实现方式:
方法1:整数除法+取余
核心表达式:i // 2 % 2
原理:每两个连续的i值会得到相同的商(比如i=0、1时商为0,i=2、3时商为1),再对2取余就会生成连续两个0、连续两个1的循环。方法2:取模+整数除法
核心表达式:(i % 4) // 2
原理:i % 4会生成0、1、2、3的循环,将结果除以2后就得到0、0、1、1的序列。方法3:位运算(高效版)
核心表达式:(i // 2) & 1
原理:和方法1逻辑一致,用位运算替代取余,在性能敏感场景下更高效。
完整代码示例(以方法1为例)
seq = [] for i in range(10): e = i // 2 % 2 seq.append(e) print(seq) # 输出结果:[0, 0, 1, 1, 0, 0, 1, 1, 0, 0]
内容的提问来源于stack exchange,提问作者gameveloster
相关产品推荐
相关产品推荐

