web-dev-qa-db-fra.com

In Python Comment puis-je déclarer un tableau dynamique

Je veux déclarer un tableau et tous les éléments présents dans la ListBox doivent être supprimés quel que soit le nom du groupe présent dans la ListBox. n'importe quel corps peut-il m'aider à coder en Python. J'utilise WINXP OS & Python 2.6.

18
Srinath

En Python, un list est un tableau dynamique. Vous pouvez en créer un comme ceci:

lst = [] # Declares an empty list named lst

Ou vous pouvez le remplir avec des éléments:

lst = [1,2,3]

Vous pouvez ajouter des éléments en utilisant "ajouter":

lst.append('a')

Vous pouvez parcourir les éléments de la liste en utilisant la boucle for:

for item in lst:
    # Do something with item

Ou, si vous souhaitez garder une trace de l'index actuel:

for idx, item in enumerate(lst):
    # idx is the current idx, while item is lst[idx]

Pour supprimer des éléments, vous pouvez utiliser la commande del ou la fonction remove comme dans:

del lst[0] # Deletes the first item
lst.remove(x) # Removes the first occurence of x in the list

Notez, cependant, que l'on ne peut pas parcourir la liste et la modifier en même temps; pour ce faire, vous devez plutôt parcourir une partie de la liste (qui est essentiellement une copie de la liste). Un péché:

 for item in lst[:]: # Notice the [:] which makes a slice
       # Now we can modify lst, since we are iterating over a copy of it
77

En python, un tableau dynamique est un "tableau" du module de tableau. Par exemple.

from array import array
x = array('d')          #'d' denotes an array of type double
x.append(1.1)
x.append(2.2)
x.pop()                 # returns 2.2

Ce type de données est essentiellement un croisement entre le type "liste" intégré et le type "ndarray" numpy. Comme un ndarray, les éléments des tableaux sont des types C, spécifiés à l'initialisation. Ce ne sont pas pointeurs vers python objets; cela peut aider à éviter certaines utilisations abusives et erreurs sémantiques, et modestement améliore les performances.

Cependant, ce type de données a essentiellement les mêmes méthodes qu'une liste python, sauf quelques méthodes de conversion de chaînes et de fichiers. Il manque toutes les fonctionnalités numériques supplémentaires d'un ndarray.

Voir https://docs.python.org/2/library/array.html pour plus de détails.

5
ChrisM

Voici une excellente méthode que j'ai récemment trouvée sur un poteau de débordement de pile différent concernant les tableaux multidimensionnels, mais la réponse fonctionne aussi très bien pour les tableaux unidimensionnels:

# Create an 8 x 5 matrix of 0's:
w, h = 8, 5;
MyMatrix = [ [0 for x in range( w )] for y in range( h ) ]  

# Create an array of objects:
MyList = [ {} for x in range( n ) ]

J'adore cela car vous pouvez spécifier le contenu et la taille de manière dynamique, en une seule ligne!

Un de plus pour la route:

# Dynamic content initialization:
MyFunkyArray = [ x * a + b for x in range ( n ) ]
1
SpaceHaze