寻找一种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/