2010-07-12 7 views

Répondre

4
import sys 

print sys.maxsize 
# prints some system-dependent number representing the maximum 
# size most containers can hold. 

Python sys module

Je soupçonne que sur la plupart des plates-formes, sys.maxsize retournerait la même valeur que sys.maxint (qui est garanti au moins 2 ** 31-1), mais je doute que ce soit garanti.

+0

Bonne réponse dans la mesure du possible, mais la taille * maximum d'un conteneur * ne va pas se traduire directement par un maximum * d'éléments * qu'il peut contenir. Vous devriez en savoir beaucoup sur la représentation interne. Mais même si vous l'avez fait, la valeur précise ne vaut pas la peine de calculer, car ce sera certainement beaucoup plus que ce que vous avez pour RAM. Par exemple. Sur l'ordinateur 64 bits, je tape ceci: 'sys.maxsize == 2 ** 63 - 1', mais le * hardware * ne peut pas gérer plus de 2 ** 48 octets de RAM. – zwol

+0

@Zack: Oui, 'sys.maxsize' vous indique seulement combien d'éléments Python est _capable_ d'indexation dans le conteneur (c'est pourquoi je pense que c'est généralement la même valeur que' sys.maxint'). Mais vous avez également raison de dire que, tout simplement parce que Python sait comment utiliser autant d'index, cela ne signifie pas que votre ordinateur peut nécessairement stocker autant d'informations dans le conteneur lui-même. –

0

Si vous voulez dire quelle est la taille maximale d'une ligne ou d'une liste, je suppose qu'elle est très grande. Très probablement vous manqueriez de mémoire avant d'atteindre une limite. Quelqu'un d'autre peut ajouter à cela si elles ont des connaissances spécifiques de l'indexation, possible 2,1 ou 4,2 milliards d'éléments en 32 bits et 8 ou 16 sextillion en 64 bits.

3

Vous pouvez essayer vous-même, de manière interactive dans l'interpréteur Python:

>>> tuple([0] * 10000) 
(0, 0, 0, ... 0, 0) 

... représente 9995 zéros.

Questions connexes