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 :

Multiplier une liste par une autre


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2018
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2018
    Messages : 180
    Par défaut Multiplier une liste par une autre
    Bonjour,

    Je travaille sur un exercice ou l'utilisateur rentre manuellement les notes dans une première liste nommée XI, et une autre liste (YI) qui indique le nombre de fois ou cette note apparaît. Pour commencer, je me base sur 4 notes. Afin de calculer la moyenne, je souhaiterai multiplier la liste de notes (XI) par le nombre d’occurrence de chacun de ces éléments (YI). Malheureusement, sur internet je ne vois que des solution à base de modules à télécharger et à installer, bref ça m'étonne que ça soit aussi compliqué.

    J'ai donc réussi à installer le module numpy, et à me débrouiller comme cela.

    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
    20
    21
    22
    23
    24
     
    import numpy
     
    XI = []
    YI = []
    XIYI = []
     
    compt = 0
     
    NBR_element = int(input("Combien de valeur : ")) #L'utilisateur affiche le nombre de note
     
    while compt < NBR_element: #Méthode bricolée permettant à l'utilisateur de rentrer les notes
     
    	XI.append(int(input("Valeur XI %s : " % compt))) #La liste des notes
     
    	YI.append(int(input("Valeur YI %s : " % compt))) #Le nombre d’occurrence de ces notes
     
    	compt = compt + 1
    	pass
     
    XI = numpy.array(XI)
    YI = numpy.array(YI)
     
    CINI = XI * YI #Marche niquel
    Existe t-il une manière plus simple ?

    Merci à vous

  2. #2
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Salut.

    Pour faire cela, il suffit simplement de parcourir les 2 listes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> a = [10, 7]
    >>> b = [3, 2]
    >>> r = [n * b[i] for i, n in enumerate(a)] 
    >>> r
    [30, 14]
    Ou encore en utilisant zip.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> r = [n * m for n, m in zip(a, b)]
    >>> r
    [30, 14]

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2018
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2018
    Messages : 180
    Par défaut
    Merci a vous

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    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 060
    Par défaut
    Bonjour,

    l'utilisateur rentre manuellement les notes dans une première liste nommée XI, et une autre liste (YI) qui indique le nombre de fois ou cette note apparaît
    Hummm, ok, mais pourquoi pas nommer l'ensemble des notes: notes ? et l'ensemble des coefficients: coeff ou coefficients ?

    Vous utilisez numpy, pourquoi ne pas faire avec ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >>> import numpy as np>>> notes = np.array([], np.float)
    >>> coeff = np.array([], np.uint8)
    >>> 
    >>> notes = np.append(notes, 15)
    >>> coeff = np.append(coeff, 2)
    >>> notes = np.append(notes, 7)
    >>> coeff = np.append(coeff, 1)
    >>> 
    >>> np.multiply(notes, coeff)
    array([30.,  7.])
    >>> np.sum(coeff)
    3

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/04/2007, 14h18
  2. Réponses: 11
    Dernier message: 26/02/2007, 00h04
  3. Dependance d'une liste par rapport à une autre
    Par jojo57 dans le forum JDBC
    Réponses: 1
    Dernier message: 01/12/2006, 21h18
  4. choisir ds une liste charge une autre liste par les bons elements
    Par kamaldev dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/07/2006, 10h06
  5. Multiplier une liste par 2
    Par mdswiuf dans le forum Prolog
    Réponses: 8
    Dernier message: 31/01/2005, 18h27

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