Y a-t-il une raison de faire quelque chose de plus compliqué que l'une de ces deux lignes lorsque vous voulez effacer une liste en Python ?
old_list = []
old_list = list()
La raison de ma question est que je viens de voir cela dans un code en cours d'exécution :
del old_list[ 0:len(old_list) ]
1 votes
Pourquoi faites-vous cela ? Le ramassage des ordures fonctionne. Pourquoi ne pas simplement ignorer l'ancienne valeur de la liste et laisser Python la nettoyer automatiquement ?
43 votes
@S.Lott : Le poster n'a pas écrit le code, et demande pourquoi l'auteur original l'a fait.
1 votes
Vous pourriez aussi faire : while l : l.pop()
13 votes
LOL. Je suis sûr que c'est efficace.
1 votes
Personne n'a dit que c'était efficace...
21 votes
Cela n'a rien à voir avec votre question, mais vous ne devriez pas utiliser len pour spécifier une tranche.
a[:x]
signifie commencer à x eta[x:]
signifie x à la fin.a[ 0:len(a) ]
peut s'écrire comme suita[:]
. Vous pouvez aussi utiliser les négations pour compter à partir de la fin (a[-1]
est le dernier élément).