web-dev-qa-db-fra.com

Effacer tout le tableau Python

Comment puis-je effacer un tableau entier, sans aucun élément?

Je veux le faire pour pouvoir y stocker de nouvelles valeurs (un nouvel ensemble de 100 flottants) et trouver le minimum.

En ce moment, mon programme lit le minimum des ensembles avant que je pense parce qu'il s'ajoute avec l'ensemble précédent toujours là. J'utilise .append d'ailleurs.

38
pjehyun

Notez que list et array sont des classes différentes. Tu peux faire:

del mylist[:]

Cela va en fait modifier votre liste existante. La réponse de David crée une nouvelle liste et l'affecte à la même variable. Ce que vous voulez dépend de la situation (par exemple, toute autre variable a-t-elle une référence à la même liste?).

Essayer:

a = [1,2]
b = a
a = []

et

a = [1,2]
b = a
del a[:]

Imprimez a et b à chaque fois pour voir la différence.

48
Matthew Flaschen

C'est simple:

array = []

définira array comme une liste vide. (Ils sont appelés listes en Python, en passant, pas des tableaux)

Si cela ne fonctionne pas pour vous, modifiez votre question pour inclure un exemple de code qui illustre votre problème.

28
David Z

Eh bien oui, les tableaux existent et non, ils ne sont pas différents des listes en ce qui concerne des choses comme del et append:

>>> from array import array
>>> foo = array('i', range(5))
>>> foo
array('i', [0, 1, 2, 3, 4])
>>> del foo[:]
>>> foo
array('i')
>>> foo.append(42)
>>> foo
array('i', [42])
>>>

Différences à noter: vous devez spécifier le type lors de la création du tableau, et vous économisez du stockage au détriment du temps supplémentaire de conversion entre le type C et le type Python lorsque vous faites arr[i] = expression ou arr.append(expression) et lvalue = arr[i]

5
John Machin

Maintenant, pour répondre à la question que vous auriez peut-être dû poser, comme "Je reçois 100 flottants quelque part; dois-je les mettre dans un tableau ou une liste avant de trouver le minimum?"

Réponse: Non, si somewhere est un itérable, au lieu de faire ceci:

temp = []
for x in somewhere:
   temp.append(x)
answer = min(temp)

tu peux le faire:

answer = min(somewhere)

Exemple:

answer = min(float(line) for line in open('floats.txt'))
1
John Machin