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 :

créer une liste décroissante


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 196
    Par défaut créer une liste décroissante
    Bonjour à tous, voila je dois répondre à cette question
    soit V = [] ; quelles instructions permettraient de remplir ce vecteur avec les seize premières puissances de 2, de 15 à 0, décroissantes de la gauche vers la droite ?
    Pour la premiere partie du programme
    j'arrive
    V= []
    for x in range (0 ,15) : V = V + [2**x]
    qui me donne les 16 premieres puissances mais pour les mettre décroissante je bute
    Merci

  2. #2
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Salut,
    Le dernier argument est l'incrément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for x in xrange(15,-1,-1):
      # Ce que tu veux

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    tout simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V = [2**i for i in range(15,-1,-1)]
    edit: grilled
    xrange renvoit un itérateur plutôt qu'une liste comme range, c'est mieux xrange.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 196
    Par défaut
    Merci les gars

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    J’aime bien la limpidité naturelle de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L = [ 2**i for i in reversed(xrange(16)) ]
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L = [ 1<<i for i in reversed(xrange(16)) ]



    Pour coller à la formulation de l’énoncé («remplir»), il convient d’informer de l’existence de append:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    L = []
    for i in reversed(xrange(16)):
        L.append(1<<i)





    D’autre part, dans toute la doc officielle, le mot “vector“ n’est jamais utilisé pour désigner une structure de données de type liste (recherche faite avec Google)

    Pourquoi donner un deuxième nom inadapté et fumeux à une structure de données qui en possède déjà un, compris de tout le monde ?

  6. #6
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut
    D’autre part, dans toute la doc officielle, le mot “vector“ n’est jamais utilisé pour désigner une structure de données de type liste (recherche faite avec Google)
    Pourquoi donner un deuxième nom inadapté et fumeux à une structure de données qui en possède déjà un, compris de tout le monde ?
    Bonjour eyquem,
    vector=array=tableau= structure de données ordonnée multiple. Une liste définit donc en particulier un vecteur, la réciproque étant fausse.
    Les différences:
    Dans un vecteur ou un tableau les données sont en général de même type et de même taille, et la taille est partie intégrante de la donnée.
    Dans une liste, et avec un langage à typage tardif comme python, des objets différents peuvent être chainés et la longueur est calculable.
    La représentation en mémoire est également différente, les vecteurs sont représentés par des blocs de mémoire contigus, les listes par des chainages de nœuds au moyen de pointeurs.
    Cela dit, la notion de vecteur n'a rien à voir avec un langage particulier. C'est une notion couramment employée en mathématiques et en algorithmique. Alors pourquoi s'interdire de l'utiliser dans ce forum ou dans toute conversation traitant de python.
    La seule particularité de python est d'implémenter les vecteurs en tant que listes (ce qui du point de vue de l'efficacité est loin d'être idéal...).
    Python n'est pas une science ni une religion, ce n'est qu'un langage informatique parmi (tant) d'autres. Je ne vois pas au nom de quel principe on devrait s'interdire d'utiliser des vocables généraux très largement répandus en informatique.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/07/2006, 20h14
  2. Créer une liste d'objets statiques dans une classe
    Par crossbowman dans le forum C++
    Réponses: 3
    Dernier message: 13/03/2006, 09h11
  3. Réponses: 3
    Dernier message: 20/02/2006, 18h32
  4. [EXCEL]Créer une liste (combo)
    Par elitost dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/12/2005, 16h55
  5. Réponses: 5
    Dernier message: 29/09/2005, 14h37

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