2010-08-17 21 views
24

Come si cancella un intero array, lasciandolo senza elementi?Cancella intero array Python

Voglio farlo in modo da poter memorizzare nuovi valori (un nuovo set di 100 float) e trovare il minimo.

In questo momento il mio programma sta leggendo il minimo da set prima di pensare perché si sta aggiungendo al set precedente ancora lì. A proposito, lo uso.

risposta

38

Nota che list e array sono classi diverse. Si può fare:

del mylist[:] 

Questo modificherà effettivamente la lista esistente. La risposta di David crea una nuova lista e la assegna alla stessa variabile. Quale vuoi dipende dalla situazione (ad esempio, qualsiasi altra variabile ha un riferimento alla stessa lista?).

Prova:

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

e

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

Stampa a e b ogni volta per vedere la differenza.

+0

+1 Eh abbiamo scritto quasi esattamente lo stesso, ma y ou erano i primi –

+0

Davvero, ci sono matrici in Python? Non lo sapevo. (In realtà probabilmente lo sapevo ma ho dimenticato) In ogni caso +1 per espandere la differenza tra le nostre risposte. Ho appena fatto un'ipotesi che la differenza non avrebbe avuto importanza per l'OP. –

+0

vedo. che aiuta @david: yah, non c'è molta differenza per me. ma la mia newness è diminuita: P – pjehyun

18

E 'semplice:

array = [] 

imposterà array di essere una lista vuota. (Si chiamano liste in Python, a proposito, non array)

Se ciò non funziona, modifica la domanda per includere un esempio di codice che mostri il tuo problema.

+0

haha ​​wow grazie – pjehyun

3

Ebbene sì esistono array, e no, non sono diversi a liste quando si tratta di cose come del e 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]) 
>>> 

Differenze degni di nota: è necessario specificare il tipo quando si crea l'array e si salva stoccaggio a scapito dei tempi supplementari conversione tra il tipo C e il tipo di Python quando si fa arr[i] = expression o arr.append(expression), e lvalue = arr[i]

1

Ora per rispondere alla domanda che forse si dovrebbe avere chiesto, come "sono ottenendo 100 f i lombi si formano da qualche parte; devo metterli in un array o una lista prima di trovare il minimo "

Risposta: No, se somewhere è un iterabile, invece di fare questo:

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

si può fare questo:

answer = min(somewhere) 

Esempio:

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