21 votes

Pourquoi une liste triée est-elle plus grande qu'une liste non triée

J'ai une liste my_list (la liste contient des chaînes utf8):

 >>> len(my_list)
8777
>>> getsizeof(my_list)                     #  <-- note the size
77848
 

Pour une raison quelconque, une liste triée ( my_sorted_list = sorted(my_list) ) utilise plus de mémoire:

 >>> len(my_sorted_list)
8777
>>> getsizeof(my_sorted_list)              #  <-- note the size
79104
 

Pourquoi sorted renvoie une liste qui prend plus d'espace en mémoire que la liste non triée initiale?

13voto

L' opération de redimensionnement de liste surutilisent afin d'amortir l'ajout à la liste au lieu de commencer par une liste préallouée par le compilateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X