寻找一种pythonic的方法来重复固定长度的序列,同时增加序列数字直到达到最大长度。

到目前为止,该代码使用while循环和四个变量(一个是列表本身)来完成逻辑,如下所示:

l = []
i, repeat, max_len = 0, 3, 20
while True:
    if len(l) + repeat <= max_len:
        l.extend([i] * repeat)
    else:
        repeat = max_len - len(l)
        l.extend([i] * repeat)
        break
    i += 1


上面的代码产生

l = [0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6]

因此,重复固定长度的3个单位的序列,直到达到最大长度20(忽略max_len允许的序列末尾数字)

有pythonic的方法可以做到吗?

最佳答案

这个怎么样:

[int(i/repeat) for i in range(max_len)]

关于python - 固定长度的序列以python的增量重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53874579/

10-16 16:22