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 :

décomposer une liste par pas et la stocker dans une matrice


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Par défaut décomposer une liste par pas et la stocker dans une matrice
    bonjour,

    étant donner une liste :
    Sum_comm=[(1, 30), (2, 57), (4, 36),(1, 31), (2, 50), (4, 38),(1, 71), (2, 55), (4, 38)]
    len(Target)=3
    je veux décomposer cette liste par pas : len(Target)
    (1, 30), (2, 57), (4, 36)
    (1, 31), (2, 50), (4, 38)
    (1, 71), (2, 55), (4, 38)

    ce que j'ai fait juste une simple affichage pour tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       if len(sum_comm)>len(Target_CPus):
                       print(sum_comm[:len(Target_CPus)])
                       print(sum_comm[len(Target_CPus):])
    pour la résultat :
    (1, 30), (2, 57), (4, 36)
    (1, 31), (2, 50), (4, 38)
    (1, 71), (2, 55), (4, 38)
    je veux la stoker dans une matrice au début intialiser à 0:

    MTCCM = zeros((len(len(sum_comm)/len(Target_CPus), len(Target_CPus)), dtype='i')

    je veux arriver à faire une matrice de cette forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     1   2   4
       
    1 30 75 36 
    2 31  50 38
    3 71  55  38

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 716
    Par défaut
    Salut,

    Découper une séquence par paquet de longueur N:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> s = 'abcdefghi'
    >>> for i in range(0,len(s),3):
    ...     print(s[i:i+3])
    ...
    abc
    def
    ghi
    Et pour fabriquer un tableau à partir des 2èmes items:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (1, 30), (2, 57), (4, 36)
    (1, 31), (2, 50), (4, 38)
    (1, 71), (2, 55), (4, 38)
    On construit la liste de listes [[30, 57, 36], [31,50,38], [71, 55, 38]] que l'on passe à numpy.

    Dans les deux cas, çà s'apprend dans les tutos: vous devriez déjà avoir fait un code qui ressemble à quelque chose et s'il y a problème le décrire et donner la possibilité de le reproduire.

    note: vous pourriez aussi faire faire le boulot par numpy en passant la liste [30, 57, 36, 31, 50, 38, 71, 55, 38] à numpy.array directement, puis vous redimensionnez le tableau pour qu'il soit 3x3.


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre très actif
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Par défaut
    voilà ce que j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                       for t in range(0, len(sum_comm), len(Target_CPus)):
                       print(sum_comm[t:t + len(Target_CPus)])
                       for k in (sum_comm[t:t + len(Target_CPus)]):
                           print(k)
                           print(k[1])
                           for l in range(len(i[1][1])):
                               for s in range(len(Target_CPus)):
                                   MTCCM[l][s] = k[1]
                   print("MTCCM\n", MTCCM)
    l'affichage des éléments voulu c'est bon, mais lors du remplissage, seulement le dernier élément récupéré est rempli dans la matrice!!

    voilà ce que j'ai comme résultat:
    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
    25
    sum_comm [(2, 23), (3, 30), (4, 32), (2, 30), (3, 45), (4, 36), (2, 30), (3, 44), (4, 12)]
    [(2, 23), (3, 30), (4, 32)]
    (2, 23)
    23
    (3, 30)
    30
    (4, 32)
    32
    [(2, 30), (3, 45), (4, 36)]
    (2, 30)
    30
    (3, 45)
    45
    (4, 36)
    36
    [(2, 30), (3, 44), (4, 12)]
    (2, 30)
    30
    (3, 44)
    44
    (4, 12)
    12
    MTCCM
     [[12 12 12]
     [12 12 12]]

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 716
    Par défaut
    Salut,

    Votre code est illisible (et mal indenté) et de toutes façons, on ne peut rien reproduire.

    Plutôt que d'essayer de faire les 3 opérations d'un coup en imbriquant plusieurs boucles, séparez chaque opération en vérifiant que vous obtenez ce que vous attendez en sortie (de chaque étape).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [Python 3.X] Lister fichiers par FTP pour les stocker dans une Listview idem explorateur Windows
    Par Supernatural dans le forum Général Python
    Réponses: 19
    Dernier message: 10/10/2018, 11h09
  2. Réponses: 3
    Dernier message: 20/04/2007, 14h18
  3. Tri d'une zone de liste par bouton
    Par illight dans le forum Access
    Réponses: 7
    Dernier message: 09/11/2005, 19h39
  4. mise à jour d'une liste par un popup
    Par Equus dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/02/2005, 11h21
  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