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