IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Nettoyage de tableau


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 839
    Billets dans le blog
    1
    Par défaut Nettoyage de tableau
    Bonjour à tous

    J'aimerais votre avis sur 2 méthodes possibles pour nettoyer un tableau

    Donc à la base j'ai mon tableau tab=[] puis il grandit petit à petit (tab.append(...))

    Ensuite arrive un moment où je nettoie tout. Et là je me demande s'il vaut mieux le reformater en réécrivant tab=[] ou bien vider son contenu en écrivant del tab[:].

    Est-ce préconisé/rapide/propre d'utiliser l'une plutôt que l'autre ?

    Merci
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  2. #2
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    tab=[] assigne une nouvelle liste à tab. L’ancienne voit juste son refcount décrémenté de un, elle reste en mémoire jusqu’à ce qu’il tombe à zéro et que le garbage collector fasse son boulot.

    del tab[:] (ou –*sauf erreur de ma part*–*son équivalent fonctionnel tab[:] = []) déréférence explicitement le contenu de la liste, mais sans supprimer celle-ci.

    En clair, pour un nettoyage, la seconde solution est préférable, amha. La première est à utiliser si on veut par ailleurs conserver l’ancienne liste (référencée par une autre variable par ex.), en effet*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> a = [i for i in range(10)]
    >>> b = a
    >>> a[:] = []  # or del a[:]
    >>> print(b)
    []
    Alors que*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> a = [i for i in range(10)]
    >>> b = a
    >>> a = []  # or del a
    >>> print(b)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 839
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mont29 Voir le message
    En clair, pour un nettoyage, la seconde solution est préférable, amha.
    Merci. Aujourd'hui j'ai édité les fichiers de mon projet et remplacé tous les tab=[] par del tab[:]

    Citation Envoyé par mont29 Voir le message
    La première est à utiliser si on veut par ailleurs conserver l’ancienne liste (référencée par une autre variable par ex.)
    Oui je m'en doute mais ce n'était pas le cas. C'était bien un vrai nettoyage que je voulais. Merci
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Nettoyage d’un tableau
    Par neonecc dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 16/06/2008, 14h12
  2. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  3. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21
  4. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo