Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #3408
| Path | csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail |
|---|---|
| From | pehache <pehache.7@gmail.com> |
| Newsgroups | fr.comp.lang.python |
| Subject | Re: Comment sont réellement implémentées les listes ? |
| Date | Tue, 8 Dec 2020 14:20:59 +0100 |
| Lines | 39 |
| Message-ID | <i39cttFk6bbU1@mid.individual.net> (permalink) |
| References | <i3686vF1bqcU1@mid.individual.net> <875z5dh0os.fsf@izac.org> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8; format=flowed |
| Content-Transfer-Encoding | 8bit |
| X-Trace | individual.net NIP+y42LIaVJiOJmSEIiagIILVvHVqJ5Bh8CGmOHISvVPigufK |
| Cancel-Lock | sha1:LCumB7qls0SqaUC1KWzP7wl651o= |
| User-Agent | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:78.0) Gecko/20100101 Thunderbird/78.5.1 |
| In-Reply-To | <875z5dh0os.fsf@izac.org> |
| Content-Language | fr |
| Xref | csiph.com fr.comp.lang.python:3408 |
Show key headers only | View raw
Le 07/12/2020 à 20:32, Benoit Izac a écrit : > Bonjour, > > Le 07/12/2020 à 09:42, pehache a écrit dans le message > <i3686vF1bqcU1@mid.individual.net> : > >> Comme dit dans le titre, comment sont implémentées les listes python ? >> Au début je pensais que c'était des listes chaînées, mais ensuite j'ai >> lu que c'était des tableaux dynamiques. >> >> Mais pour moi qui dit tableau dit taille égale de toutes les cases >> pour pouvoir calculer rapidement l'adresse d'un élément donné. Donc >> comment ça se passe pour les listes qui ne contiennent pas des objets >> de même taille ? >> >> - c'est le plus gros objet de la liste qui détermine la taille des >> cases, donc avec potentiellement beaucoup de mémoire perdue, et >> surtout un gros boulot pour réarranger le tableau quand un objet plus >> gros que les autres est inséré. >> >> - le tableau est en fait un tableau de pointeurs (donc avec deux fois >> la taille nécessaire quand on a que des nombres dedans). >> >> Je suppose que c'est la deuxième réponse qui est la bonne ? > > Oui, au moins pour Cpython, c'est bien un tableau de pointeur vers des > objets Python. > <https://github.com/python/cpython/blob/master/Include/cpython/listobject.h> > > Une liste chaînée n'est pas adressable, l[42] demanderait 41 next() > avant d'arriver à l'objet souhaité (O(n) contre O(1) pour un tableau). > Ce qui se rapproche le plus d'une liste chaîné est queue.Queue ou > collection.deque (qui est adressable). > Pour ce que je comprends des tableaux numpy, ce sont par contre les objets qui sont stockés directement dedans, pas des pointeurs, on est d'accord ?
Back to fr.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
Comment sont réellement implémentées les listes ? pehache <pehache.7@gmail.com> - 2020-12-07 09:42 +0100
Re: Comment sont réellement implémentées les listes ? Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2020-12-07 20:32 +0100
Re: Comment sont réellement implémentées les listes ? pehache <pehache.7@gmail.com> - 2020-12-08 11:39 +0100
Re: Comment sont réellement implémentées les listes ? pehache <pehache.7@gmail.com> - 2020-12-08 14:20 +0100
Re: Comment sont réellement implémentées les listes ? Julien Palard <julien@palard.fr> - 2020-12-08 22:09 +0100
csiph-web