142 votes

Quelle taille un tableau Python peut-il obtenir?

En python,

Quelle taille peut avoir un tableau / une liste? J'ai besoin d'un tableau d'environ 12 000 éléments de grande taille ... est-ce que ça va? - pourrai-je toujours utiliser des méthodes tableau / liste telles que le tri, etc.?

Merci beaucoup, Ed

225voto

Unknown Points 22789

Selon le code source, la taille maximale d'une liste est - PY_SSIZE_T_MAX/sizeof(PyObject*).

PY_SSIZE_T_MAX est défini dans pyport.h à ((size_t) -1)>>1

Régulièrement, sur le système 32 bits, c'est (4294967295 / 2) / 4 ou 536870912.

Par conséquent, la taille maximale d'une liste python sur un système 32 bits est 536,870,912 éléments.

Tant que le nombre d'éléments est égal ou au-dessous de cela, toutes les fonctions de liste devrait fonctionner correctement.

95voto

Álvaro Justen Points 301

Comme le dit la documentation Python :

sys.maxsize

Le plus grand nombre entier positif pris en charge par le type Py_ssize_t de la plate-forme, et donc les listes de taille maximale, les chaînes, les dicts et de nombreux autres conteneurs.

Sur mon ordinateur (Linux x86_64):

 >>> import sys
>>> print sys.maxsize
9223372036854775807
 

28voto

Nadia Alramli Points 40381

Bien sûr que c'est bon. En fait, vous pouvez voir par vous-même facilement:

 l = range(12000)
l = sorted(l, reverse=True)
 

Courir les lignes sur ma machine a pris:

 real    0m0.036s
user    0m0.024s
sys  0m0.004s
 

Mais bien sûr, comme tout le monde l'a dit. Plus le tableau est grand, plus les opérations seront lentes.

7voto

Doug Points 858

Dans le code occasionnel, j'ai créé des listes avec des millions d'éléments. Je pense que l'implémentation de listes par Python est uniquement liée à la quantité de mémoire stockée sur votre système.

De plus, les méthodes / fonctions de la liste devraient continuer à fonctionner malgré la taille de la liste.

Si vous vous souciez de la performance, il pourrait être intéressant de consulter une bibliothèque telle que NumPy .

5voto

AlbertoPL Points 8644

12000 éléments n’est rien en Python ... et en réalité, le nombre d’éléments peut aller aussi loin que la mémoire de l’interprète Python sur votre système.

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