Partage
  • Partager sur Facebook
  • Partager sur Twitter

memoire et liste

où python range-t-il les éléments d'une liste

    2 octobre 2012 à 14:48:22

    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.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      2 octobre 2012 à 20:38:41

      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).
      • Partager sur Facebook
      • Partager sur Twitter

      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.
      • Editeur
      • Markdown