Tableau binaire en python
Comment créer grand tableau en python, quelle est l'efficacité de la création de la
en C/C++:
byte *data = (byte*)memalloc(10000);
ou
byte *data = new byte[10000];
en python...?
OriginalL'auteur | 2009-04-15
Vous devez vous connecter pour publier un commentaire.
Ont un look à la tableau module:
Au lieu de passer d'une liste à l'initialiser, vous pouvez passer d'un générateur, qui est plus efficace en terme de mémoire.
array.array('B', [0]) * 10000
. (c'est à dire mupliplied tableau short) voir stackoverflow.com/a/3214343/448474OriginalL'auteur
Vous pouvez pré-allouer une liste avec:
qui sera un peu plus vite .ajoutant à cela (car il évite les intermédiaires réaffectations). Cependant, il en va allouer de l'espace pour une liste de pointeurs sur des entiers objets, qui sera supérieure à celle d'un tableau d'octets dans C.
Si vous avez besoin de l'efficacité de mémoire, vous pouvez utiliser un objet de tableau. c'est à dire:
Noter que ceux-ci peuvent être légèrement plus lent à utiliser dans la pratique, comme il y a un unboxing de processus lors de l'accès aux éléments (ils doivent d'abord être converti en python
int
objet).OriginalL'auteur Brian
Vous pouvez créer efficacement des gros tableau avec tableau module, mais son utilisation ne sera pas aussi vite que C. Si vous avez l'intention de faire quelques calculs, vous seriez mieux avec numpy.tableau
Vérifier cette question à des fins de comparaison.
OriginalL'auteur Josip
Généralement avec python, vous devriez juste créer une liste
et l'utiliser comme un tableau. Sinon, je pense que vous pourriez être à la recherche pour le tableau du module. Voir http://docs.python.org/library/array.html.
OriginalL'auteur uzi