1
A
回答
4
可以總結的元素,並創建一個新的列表與結果:
>>> a = [1, 2, 3]
>>> a = [1] * sum(a)
>>> a
[1, 1, 1, 1, 1, 1]
相比,使用迭代,因爲只需要一個內存分配方案這是有效的。如果您的列表具有合理的大小,在迭代中增加列表涉及多個內存分配。
0
另一種方法是使用itertools.repeat
,應該更有效率(如果a的總和非常非常大,那麼如果直接生成所有項目,b的列表將非常大,但是這樣我們使用迭代器,別擔心),請注意,您只能使用一次。
>>> from itertools import repeat
>>> a = [1, 2, 3]
>>> b = repeat(1, sum(a))
>>> type(b)
<type 'itertools.repeat'>
>>> list(b)
[1, 1, 1, 1, 1, 1]
>>> list(b)
[]
0
使用itertools
的另一個解決方案只能遍歷原始列表一次。
>>> import itertools
>>> a = [1, 2, 3]
>>> [1 for i in itertools.chain.from_iterable(map(range, a))]
[1, 1, 1, 1, 1, 1]
發電機表達內的範圍構建體通常在名爲flatten
函數找到。
創建列表可能是不必要的複雜,但在for
循環中使用時,它可以完全延遲評估,這可能很有用。
相關問題
- 1. 從Scala的另一個列表成員創建列表的最佳方式
- 2. 從Dojo中的對象列表創建表的最佳方式?
- 3. 如何從列表1創建一個新的列表 - 列表2在Python中
- 4. 從幾個列表中創建數據框的最佳方法
- 5. 什麼是從網格行創建列表的最佳方式
- 6. 以功能的方式從列表創建一個列表
- 7. 從列表中創建一個列表
- 8. 如何從Python中的列表創建一個循環列表?
- 9. 如何從Python中的列表構建一個新列表?
- 10. 從列表中創建sqlite表列Python
- 11. 從另一個列表創建一個列表 - Python
- 12. 從另一個列表創建一個新列表
- 13. haskell如何從另一個列表創建一個新列表?
- 14. Python - 創建變量列表的最佳方法
- 15. 從列表中創建一個新的列表,其中包含來自第一個顯式值的列表
- 16. 從列表創建一個子列表
- 17. Python:從文件創建一個列表
- 18. 從列表中創建一個列表的列表
- 19. 創建新列表與列表中的副本列表 - python
- 20. 迭代通過列表的Python列表,並創建一個新的列表
- 21. 創建列表項目的最佳方式
- 22. Python:在滿足某些條件時從列表中創建一個新列表
- 23. 從以前列表的百分比創建一個新列表?
- 24. 從Python中的元組列表中創建一個表3
- 25. Python從csv的每一行的最後一列創建一個列表
- 26. 創建一個從列表
- 27. 創建一個從列表
- 28. 創建一個從列表
- 29. 創建一個從列表
- 30. 從Prolog列表中的列表中刪除每個列表中的第一個元素的最佳方法?
這是迄今爲止最快的解決方案,尤其值得注意的是您的列表越大。 – Reti43
@zzoop這是否解決您的問題? –