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 :

Reverse pour les listes


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Par défaut Reverse pour les listes
    Bonjour,

    J'ai un souci sans doute bête, mais qui m'échappe : lorsque je tape ce qui suit, j'obtiens comme réponse 'None'.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    aab = [1,2,3,4]
    print(aab.reverse())

    Quelqu'un pourrait me dire pourquoi ?

    Je précise que je programme en Python 3.2 ; 'reverse' aurait-il disparu ?

  2. #2
    Membre très actif
    Homme Profil pro
    dev
    Inscrit en
    Avril 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : dev
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 174
    Par défaut
    esseil sa
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     a = [1,2,3,4,5]
    a.reverse()
    print a

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Par défaut
    Oui, ben là , j'ai plutôt honte...

    C'était trop simple...

    Désolé, on oublie.

    Merci, en tout cas.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Par défaut
    Bonjour,
    La méthode reverse ne retourne rien (ou plutôt retourne None, comme toutes les fonctions qui ne font aucun return). Par contre après l'appel de cette méthode c'est la liste initiale qui est modifiée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Python 3.1.2 (r312:79147, Sep 27 2010, 09:45:41) 
    [GCC 4.4.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> aab = [1,2,3,4]
    >>> print(aab)
    [1, 2, 3, 4]
    >>> aab.reverse()
    >>> print(aab)
    [4, 3, 2, 1]
    edit : oups, je suis un peu lent

  5. #5
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Par défaut
    Autrement dit, c'est une procédure, et non une fonction au sens strict.

    Il faut juste que je mette cela dans ma petite tête d'écervelé...

    Merci encore.

  6. #6
    Membre très actif
    Homme Profil pro
    dev
    Inscrit en
    Avril 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : dev
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 174
    Par défaut
    des fois je trouve des erreurs trop trop bête dans mes codes, c acause de la fatigue bon courage

  7. #7
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Citation Envoyé par Ilpirato Voir le message
    Autrement dit, c'est une procédure, et non une fonction au sens strict.

    Il faut juste que je mette cela dans ma petite tête d'écervelé...

    Merci encore.
    Si on veux. En Python il n'y a que des fonctions, le return None étant implicite.

    @+

    Edit :Voir fib

  8. #8
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 058

  9. #9
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Personnellement j'adore jouer sur l'index mais attention ici, bien penser que dans un cas nous utilisons une méthode de l'objet list et dans l'autre nous créons une nouvelle liste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    >>> liste = [1, 2, 3, 4, 5, 6, 7]
    >>> liste2 = liste
    >>> liste3 = liste[::-1]
    >>> liste
    [1, 2, 3, 4, 5, 6, 7]
    >>> liste2
    [1, 2, 3, 4, 5, 6, 7]
    >>> liste3
    [7, 6, 5, 4, 3, 2, 1]
    >>> liste.reverse()
    >>> liste2
    [7, 6, 5, 4, 3, 2, 1]
    >>> liste3
    [7, 6, 5, 4, 3, 2, 1]
    >>> liste.reverse()
    >>> liste2
    [1, 2, 3, 4, 5, 6, 7]
    >>> liste3
    [7, 6, 5, 4, 3, 2, 1]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    >>> def retourne():
    ...     liste.reverse()
    ...     print(liste)
    ... 
    >>> retourne()
    [7, 6, 5, 4, 3, 2, 1]
    >>> def retourne():
    ...     liste = liste[::-1]
    ...     print(liste)
    ... 
    >>> retourne()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<stdin>", line 2, in retourne
    UnboundLocalError: local variable 'liste' referenced before assignment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> liste = [1, 2, 3, 4, 5, 6, 7]
    >>> liste1 = liste
    >>> liste = liste[::-1]
    >>> liste1
    [1, 2, 3, 4, 5, 6, 7]
    >>> liste
    [7, 6, 5, 4, 3, 2, 1]
    >>> id(liste)
    3075492268L
    >>> id(liste1)
    3078083116L
    A bien prendre en compte il me semble.

    @+

    Edit:
    Un autre exemple de l'utilisation de l'index ou le résultat 'semble' le même.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    >>> liste
    [1, 2, 3, 4, 5, 6, 7]
    >>> liste[-1:]
    [7]
    >>> liste
    [1, 2, 3, 4, 5, 6, 7]
    >>> liste.pop()
    7
    >>> liste
    [1, 2, 3, 4, 5, 6]
    >>> liste = [1, 2, 3, 4, 5, 6, 7]
    >>> type(liste[-1:])
    <type 'list'>
    >>> type(liste.pop())
    <type 'int'>
    @++

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

Discussions similaires

  1. [MooTools] Utilisation de Request (Ajax) pour les listes
    Par beyo dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 27/05/2010, 12h48
  2. [DW MX]validation de form. : pas pour les listes-menus ?
    Par evevev dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 09/10/2008, 12h12
  3. Question au sujet des crochets pour les listes
    Par LinuxUser dans le forum Prolog
    Réponses: 7
    Dernier message: 28/08/2008, 00h01
  4. Recherche des exercices pour les listes chainée
    Par dot-_-net dans le forum C
    Réponses: 1
    Dernier message: 15/12/2007, 18h14
  5. Comment marche la récursivité pour les listes ?
    Par Seb981 dans le forum Prolog
    Réponses: 6
    Dernier message: 31/05/2007, 21h28

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