的Python如何計算列表的長度(使用len()
功能)是否經過for
或while
循環做相同或它有一些內部變量,存儲列表的長度?
6
A
回答
4
a = range(10)
b = range(1000000)
timeit len(a) # 85.4 ns
timeit len(b) # 94.4 ns
它看起來不像一個循環。
3
從Python的角度來看,len()
函數調用該類的__len__()
方法,該方法返回內部已知長度。
5
是的,CPython列表有一個長度的內部變量。
它叫做ob_size
;所有variable-sized objects都有。
5
它使用一個內部變量來存儲列表的長度(與Python中的所有其他可變長度對象類型一樣)。因此,len()是一個O(1)操作,不管列表的大小如何(即它在恆定時間內運行)。
這裏是implementation of len() for lists,這裏是它調用的Py_SIZE macro,這裏是Py_SIZE使用的declaration of ob_size。
相關問題
- 1. 的Python,LEN函數
- 2. Python len()不好
- 3. 如果len(列表)在Python
- 4. str(len(x))in python
- 5. 這條Python語句如何「行[len('name:'):]」工作
- 6. LEN錯誤的python荏苒
- 7. 如何用Python執行leet?
- 8. 如何加速python執行
- 9. 如何執行Python文件
- 10. 如何執行Python字典?
- 11. len如何工作?
- 12. 如何從Python執行Python文件?
- 13. 如何從Python shell執行Python程序?
- 14. 在Python 3中剖析len(set)與set .__ len __()的性能
- 15. Python 2.7:len()從換行符返回文件行的錯誤值
- 16. python len函數問題
- 17. Python Selectionsort,不能使用len()
- 18. python list comprehension set max len
- 19. 如何執行編譯的Python代碼
- 20. 如何在C#中執行Python的zip?
- 21. 如何中止Python腳本的執行?
- 22. 如何在python MySQLdb的執行SQL_CALC_FOUND_ROWS
- 23. 如何執行Python包的Debian打包?
- 24. Python:如何執行生成的代碼?
- 25. 如何執行嵌套的python文件
- 26. 如何加快Python的執行速度?
- 27. 我執行ssh後如何繼續執行我的python腳本
- 28. 執行'import.py'時執行Python ImportError,但執行'python import.py'時執行Python ImportError
- 29. 預測sprintf()'ed行的len?
- 30. 如何在python中執行方法執行
http://stackoverflow.com/questions/1115313/cost-of-len-function –
「x怎麼實現」和「x成本是多少」是兩個不同的問題,它們有不同的答案。 –
@Petr:除了'x'的代價爲'x'如何實現提供了一個非常大的線索。例如,如果'len'在O(1)中運行,那麼可以確定存在內部變量; O(N)可能意味着它會單獨計算它們;更高意味着Python開發者是白癡。 :) – cHao