Bonjour.
Je voudrais savoir comment Python range les différents éléments d'une liste. J'ai compris (bien je l'espère) que quand on crée une liste l, python range l dans l'espace des noms avec un pointeur qui pointe sur la liste...Mais pointe-t-il sur le premier élément de la liste ? Comment sont trouvés les éléments suivants ??? Est-ce une espèce de liste chaînée où la valeur de l[0] est stockée ainsi qu'un pointeur vers l[1] ???
Je voudrais bien pouvoir expliquer cette gestion à mes élèves...
Merci.
L'implémentation des listes n'est pas faite avec une liste chainée, mais sur base d'un tableau de pointeurs.
l pointe donc vers un objet de type PyListObject qui contient un tableau de PyObject* (plus précisément ce tableau est alloué dynamiquement). définition du type PyListObject List object implementation
NB : infos valables pour CPython 3.2 (je suppose que c'est à peu près la même chose pour toutes les versions de CPython).
memoire et liste
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.