2015-08-17 19 views
9

Sto lavorando su una macchina Linux con Python versione 3.2.3. Ogni volta che provo a fare list.clear() ottengo un'eccezionePython3 AttributeError: l'oggetto 'list' non ha attributo 'clear'

>>> l = [1, 2, 3, 4, 5, 6, 7] 
>>> l.clear() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'list' object has no attribute 'clear' 

Allo stesso tempo, sul mio Mac con Python 3.4.3 lo stesso codice viene eseguito senza problemi. Può essere dovuto alla differenza tra le versioni Python o c'è qualcosa che mi manca?

risposta

14

list.clear è stato aggiunto in Python 3.3.

Citando la sezione Mutable Sequence Types nella documentazione:

New in version 3.3: clear() and copy() methods.

s.clear() removes all items from s (same as del s[:])

Vedere la issue #10516 per la discussione pertinenti e modi alternativi di compensazione liste. In sintesi, è lo stesso di del l[:] e l[:] = [].

+5

Aggiungendo semplicemente che è possibile utilizzare 'del l [:]'. – dav1d

+0

Grazie! @ dav1d Grazie, sì, è quello che ho fatto. – oranJess