有效率地建立重複項清單
在 Python 中,建立包含重複元素的清單是一項常見任務。一種方法是使用列表理解,例如 [e for number in range(n)]。然而,這種方法可能效率較低,尤其是對於大型清單。
替代方法
另一種方法是使用itertools 模塊中的Python 內置重複方法:
itertools.repeat(e, n)
這將創建一個按需產生e 重複值的物件。要取得列表,只需將其轉換:
list(itertools.repeat(e, n))
效能注意事項
雖然重複最初可能比列表乘法方法([e] * n)更快,它創建一個物件而不是一個具體的列表。要建立列表,需要對其進行轉換。
[e] * n
這個方法直接建立一個包含 n 個 e 副本的清單。
效能測試
效能測試表明,對於大型列表,列表乘法顯著更快:
## repeat() timeit.timeit('itertools.repeat("foo", 1000000)', number=1000) 0.4600000247131665 ## [e] * n timeit.timeit('["foo"] * 1000000', number=1000) 0.19000002993464403
結論
對於建立重複項目的大型列表,乘以單一項目列表([e] * n)是最佳選擇,因為以其卓越的性能。
以上是在 Python 中建立大量重複項的最有效方法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!