3
A
回答
4
另一个想法,而不需要任何其他软件包或款项:
[x//N for x in range((M+1)*N)]
其中N
是您重复的次数,M
是重复的最大值。例如。
N = 3
M = 5
[x//N for x in range((M+1)*N)]
产生
[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5]
2
我的第一反应是让从funcy包一些功能性的帮助。如果N
是重复每个值的次数,并M
是重复的最大值,那么你可以做
import funcy as fp
fp.flatten(fp.repeat(i, N) for i in range(M + 1))
这将返回一个发电机,所以让你可以叫list()
周围的阵列
0
0
下面这段代码是我能想到的最简单的版本。 这有点脏,很长,但它完成了工作。
在我看来,它更容易理解。
def mklist(s, n):
l = [] # An empty list that will contain the list of elements
# and their duplicates.
for i in range(s): # We iterate from 0 to s
for j in range(n): # and appending each element (i) to l n times.
l.append(i)
return l # Finally we return the list.
如果运行代码...:
print mklist(10, 2)
[0,0,1,1,2,2,3,3,4,4,5,5,6,6, 7,7,8,8,9,9]
print mklist(5, 3)
[0,0,0,1,1,1,2,2,2,3,3,3,4,4,4
另一个版本有点整洁,有列表理解。 但是嗯...我们必须对其进行排序。
def mklist2(s, n):
return sorted([l for l in range(s) * n])
运行该版本将给出以下结果。
print mklist2(5, 3)
原材料:[0,1,2,3,4,0,1,2,3,4,0,1,2,3,4]
排序:[0,0 ,0,1,1,1,2,2,3,3,3,4,4,4]
相关问题
- 1. 为每组重复记录分配连续编号
- 2. 如何生成连续列表编号?
- 3. 如何变换号码列表为连续号码清单
- 4. 正则表达式不连续的重复号码
- 5. SQL将使用连续编号修饰重复组的每个成员
- 6. 序列重复表重新编号
- 7. 用连续编号填充SQL列
- 8. 没有重复号码的Python列表
- 9. 计数的重复号码列表
- 10. URL的连续编号
- 11. 连续自动编号
- 12. 怎么算连续编号
- 13. data.frame段的连续编号
- 14. 打印连续编号
- 15. 连续参考编号
- 16. 使用连续编号填充空表
- 17. Asterisk防止拨号方案连续重复的拨号方案
- 18. 打印连续号码
- 19. 格式化连续号码
- 20. 返回连续号码
- 21. 在列表中连续编号多行记录
- 22. 连续获取2个唯一编号?
- 23. 如何使用jQuery为表内的序列号列连续编号
- 24. 如何在MySQL中查询和分组每个连续号码系列?
- 25. 三个连续号码的C产品
- 26. 确定列表号是否连续
- 27. 非连续序列号
- 28. 从无序串取号码,并将其转换为一个列表用逗号分隔每个号码
- 29. 有序列表重复号1个
- 30. excel中的重复编号
这将在python 3中返回生成器,但在python 2中返回列表。要在python 2中获取迭代器使用'iflatten()'。 – Suor