生成序列 0, 0, 1, 1, 0, 0, 1, 1, ...在 Python 中 [duplicate]

Generating the sequence 0, 0, 1, 1, 0, 0, 1, 1, ... in Python [duplicate]

提问人:gameveloster 提问时间:7/29/2022 更新时间:7/29/2022 访问量:565

问:

这个问题在这里已经有答案了:
去年关闭。

社区去年审查了是否重新讨论这个问题,并关闭了它:

原始关闭原因未解决

使用给了我交替的序列% 2[0, 1, 0, 1, ...]

seq = []
for i in range(10):
    e = i % 2
    seq.append(e)

有没有办法通过从循环内部生成元素来生成序列?[0, 0, 1, 1, 0, 0, 1, 1,...]

seq = []
for i in range(10):
    e = the_solution(i)
    seq.append(e)
Python 循环 序列

评论

2赞 Karl Knechtel 7/29/2022
为什么这里有两次重新开放投票?对我来说,它看起来像一个明显的复制品。

答:

9赞 Silvio Mayolo 7/29/2022 #1

听起来你想放慢现有的序列,有效地将每个元素的长度增加一倍。也就是说,新序列的索引 0 和 1 应与旧序列的索引 0 相对应;新序列的 2 和 3 应与旧序列的索引 1 相对应;等等。我们可以使用整数除法来获得这种行为。

e = (i // 2) % 2

//就像,但它四舍五入到下一个整数,所以和都是 ./2 // 23 // 21