众所周知,可以用 range
来获取一列数字,例如:
>>> list(range(5))
[0, 1, 2, 3, 4]
如果你想要每个数字有3个副本,可以使用以下代码:
>>> list(range(5)) * 3
[0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
但是是否有一种使用 range
更轻松地重复制品的方法呢?
[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]
示例:
sorted(list(range(5)) * 3) # has unnecessary n * log(n) complexity
[x//3 for x in range(3*5)] # O(n), but division seems unnecessarily complicated