Cómo hacer una lista de Python

Quiero saber cómo funciona len ().

¿Cuenta desde el principio hasta el final de una lista cada vez que llamo a len () o, dado que la lista también es una clase, len () devuelve una variable en el objeto de la lista que registra la longitud de la lista?

Además, espero que alguien pueda decirme dónde puedo encontrar el código fuente de esas funciones integradas como ‘len ()’, ‘map ()’, etc.

Descargue el código fuente de Python 2.7 aquí: http://www.python.org/getit/releases/2.7.4/

list se implementa en ./Include/listobject.h y ./Objects/listobject.c .

 typedef struct { PyObject_VAR_HEAD /* Vector of pointers to list elements. list[0] is ob_item[0], etc. */ PyObject **ob_item; /* ob_item contains space for 'allocated' elements. The number * currently in use is ob_size. * Invariants: * 0 <= ob_size <= allocated * len(list) == ob_size * ob_item == NULL implies ob_size == allocated == 0 * list.sort() temporarily sets allocated to -1 to detect mutations. * * Items must normally not be NULL, except during construction when * the list is not yet visible outside the function that builds it. */ Py_ssize_t allocated; } PyListObject; 

list.__len__() solo consulta ob_size , que es parte de PyObject_VAR_HEAD . Esto hace que len() una operación de tiempo constante para listas.

Bueno, puedes encontrar la documentación de las funciones incorporadas aquí .

El tipo de datos de la list un seguimiento del número de elementos que contiene, len(list) es una operación O (1).


Para el código fuente, puede encontrar el código fuente de Python en la página de descarga .