No he podido encontrar una fuente para esta información, salvo buscar el código fuente de Python para determinar cómo funcionan los objetos. ¿Alguien sabe dónde podría encontrar esto en línea?Dónde puedo encontrar la complejidad de tiempo y espacio de los tipos de secuencia incorporados en Python
Respuesta
Pagar la página TimeComplexity en la wiki de py dot org. Cubre set/dicts/lists/etc al menos en cuanto a la complejidad del tiempo.
Si preguntas lo que creo que estás preguntando, puedes encontrarlos Here ... página 476 y sucesivamente.
Está escrito en torno a las técnicas de optimización para Python; Se trata principalmente de notación Big-O de eficiencias de tiempo, no mucha memoria.
Raymond D. Hettinger hace an excellent talk (slides) sobre las colecciones integradas de Python llamadas 'Contenedores Core Python - Under the Hood'. La versión que vi se centró principalmente en set
y dict
, pero también se cubrió list
.
También hay algunas fotos de las diapositivas pertinentes de EuroPython en a blog.
Aquí se presenta un resumen de mis notas en list
:
- almacena los elementos como una matriz de punteros. El subíndice cuesta O (1) vez. Anexar costos amortizados O (1) tiempo. Insertar costos O (n) tiempo.
- Intenta evitar
memcpy
al crecer por sobreasignación. Muchas listas pequeñas perderán mucho espacio, pero las grandes listas nunca desperdician más de aproximadamente el 12.5% de sobreasignación. - Algunas operaciones pre-tamaño. Los ejemplos dados fueron
range(n)
,map()
,list()
,[None] * n
, y rebanado. - Al contraerse, la matriz es
realloc
ed solo cuando está desperdiciando el 50% del espacio.pop
es barato.
- 1. Complejidad de tiempo/espacio de PHP Array
- 2. TypeScript: aumento de los tipos incorporados
- 3. ¡Método de extensión para tipos incorporados de Python!
- 4. ¿Puedo agregar métodos/atributos personalizados a los tipos de Python incorporados?
- 5. La mejor manera de agregar funcionalidad a los tipos incorporados
- 6. ¿Los métodos incorporados de python están disponibles en un espacio de nombres alternativo en cualquier lugar?
- 7. EventArgs genéricos para los tipos incorporados
- 8. ¿Dónde puedo encontrar la documentación de vtk para python?
- 9. ¿Dónde puedo encontrar los registros de IIS?
- 10. usando Interop.SHDocVw.dll ¿Dónde puedo encontrar este espacio de nombres/dll?
- 11. ¿El constructor predeterminado inicializa los tipos incorporados?
- 12. ¿La complejidad del tiempo de las operaciones del conjunto python?
- 13. ¿Por qué Java no incluye la complejidad de tiempo/espacio de cada función en el javadoc?
- 14. ¿Dónde puedo encontrar los métodos y atributos de las clases incorporadas de python?
- 15. Python 3 tipos incorporados __init__ no llama a super() .__ init__?
- 16. Macros de OpenOffice Python: ¿Dónde puedo encontrar documentación útil?
- 17. ¿Cómo extender los tipos incorporados de C#, como String?
- 18. Complejidad de tiempo
- 19. ¿Dónde encontrar la secuencia de optimización para clang -OX?
- 20. ¿Dónde puedo encontrar la implementación de XMLHttpRequest?
- 21. Diferencia entre Complejidad de tiempo y Tiempo de ejecución
- 22. ¿Dónde puedo encontrar un buen curso en línea de Python?
- 23. Tipos incorporados, cuándo (no) usar?
- 24. Cola de prioridad eliminar tiempo de complejidad
- 25. Establecer el tiempo y la complejidad de la velocidad
- 26. ¿Dónde puedo encontrar la documentación de MSpec?
- 27. ¿Dónde puedo encontrar la fuente de System.Web.Optimization?
- 28. ¿Dónde puedo encontrar la documentación de PythonMagick?
- 29. ¿Dónde puedo encontrar la documentación de Hpricot?
- 30. Complejidad del tiempo de la potencia()