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écalage de stockage sur 2 listes


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 11
    Par défaut Décalage de stockage sur 2 listes
    Bonjour à tous !

    Je vous explique mon problème, j'aimerais reconnaître des balises dans 2 différents fichiers et pour ensuite les insérer dans 2 listes de int. J'ai réussi cette partie du code mais :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    liste_test =['<1>  <2>  <3> ','<1>  <5> ', '<5> '
                 ]
     
    liste_test_1=['<1> <2> ', '<1>  <5> ', '<5> '
                 ]
     
     
    liste=[]
    liste_1=[]
     
     
     
    for x in range(len(liste_test)):
        i=0
        j=0
        k=0
        l=0
        m=0
     
        if '<1>' in liste_test[x]:
            while i<liste_test[x].count('<1>'):
                liste.append(1)
                i=i+1
     
        if '<2>' in liste_test[x]:
             while j<liste_test[x].count('<2>'):
                liste.append(2)
                j=j+1
     
        if '<3>' in liste_test[x]:
            while k<liste_test[x].count('<3>'):
                liste.append(3)
                k=k+1
        if '<4>' in liste_test[x]:
            while l<liste_test[x].count('<4>'):
                liste.append(4)
                l=l+1
        if '<5>' in liste_test[x]:
            while m<liste_test[x].count('<5>'):
                liste.append(5)
                m=m+1
        if liste_test[x].find('<') == -1:
               liste.append(0)
     
    for x in range(len(liste_test_1)):
        i=0
        j=0
        k=0
        l=0
        m=0
     
        if '<1>' in liste_test_1[x]:
            while i<liste_test_1[x].count('<1>'):
                liste_1.append(1)
                i=i+1
     
        if '<2>' in liste_test_1[x]:
             while j<liste_test_1[x].count('<2>'):
                liste_1.append(2)
                j=j+1
     
        if '<3>' in liste_test_1[x]:
            while k<liste_test_1[x].count('<3>'):
                liste_1.append(3)
                k=k+1
        if '<4>' in liste_test_1[x]:
            while l<liste_test_1[x].count('<4>'):
                liste_1.append(4)
                l=l+1
        if '<5>' in liste_test_1[x]:
            while m<liste_test_1[x].count('<5>'):
                liste_1.append(5)
                m=m+1
        if liste_test_1[x].find('<') == -1:
               liste_1.append(0)
    Dans la liste "liste" j'obtiens : [1,2,3,1,5,5] et dans la liste "liste_1" j'obtiens : [1,2,1,5,5]

    Ce qui amène à un décalage car je veux ensuite comparer les listes. J'aimerais par conséquent obtenir dans "liste_1" : [1,2,0,1,5,5]


    Quelqu'un pour m'éclairer ? Car cela fait maintenant pas mal de jours où je bloque.


    Merci d'avance !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 696
    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 696
    Par défaut
    Citation Envoyé par TitomTommy Voir le message
    Quelqu'un pour m'éclairer ? Car cela fait maintenant pas mal de jours où je bloque.
    C'est quoi ce code?
    Apprenez les fonctionnalités de base du langage.
    Si on part de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> L = ['<1>  <2>  <3> ', '<1>  <5> ', '<5> ']
    ses éléments sont des chaînes de caractères.
    De base .split de chaque élément va vous récupérer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> for e in L:
    ...     print (e, '***', e.split())
    ...
    <1>  <2>  <3>  *** ['<1>', '<2>', '<3>']
    <1>  <5>  *** ['<1>', '<5>']
    <5>  *** ['<5>']
    >>>
    i.e. des sous-listes de chaînes de caractères à nettoyer un peu avant d'en faire "int":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> for e in L:
    ...     for s in e.split():
    ...         print(s[1:-1])
    ...
    1
    2
    3
    1
    5
    5
    >>>
    Ajouter ensuite un 0 à la fin de chaque sous-liste de longueur impaire sera trivial...

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

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 11
    Par défaut
    Je réitère ma question car je m'apercois que je n'ai pas été assez précis et je m'en excuse.


    Tout d'abord les deux listes que j'ai initialisé (liste_test et liste_test_1) ont été simplifié pour la compréhension de mon code car en réalité chaque indice ne contient pas que des <1> ou des <n> mais contient également des chaines de caractères. (D'ou mon code un peu barbare.)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Bonjour

    Dans le code proposé par wiztricks, la variable s contient des valeurs de type str
    Donc tu peux en faire ce que tu veux : wiztricks a retiré le premier et dernier caractère car cela correspondait à ta demande mais à toi de savoir quel traitement faire.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2018
    Messages : 11
    Par défaut
    Mais si vous voulez voir en détail le réel intitulé de mon code voici :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    liste_test =["Sur le plan ophtalmologique,  <1>Madame  X </patient> présente une sclérite, traitée par hautes doses de <5>Prednisone</drug>, suivie par les <3> Docteures <3>X</doctor> et <3>X </doctor> </doctor> en ophtalmologie.",
                 " Un rendez-vous est organisé pour <2>le 14.06.2013 </date>, pour un et une réévaluation des doses de <5>Prednisone </drug>.",
                 " Un traitment prophylactique par IPP est introduit, à réévaluer après arrêt <5>des corticoïdes </drug> ."
                 ]
     
    liste_test_1=[ "Sur le plan ophtalmologique, <1> Madame X </patient> présente une sclérite, traitée par hautes doses de <5> Prednisone </drug>, suivie par les <médecins><3> Docteures X et X </doctor> en ophtalmologie.",
                  " Un rendez-vous est organisé pour le 30.02.2013 <2> le 14.06.2013 </date>, pour un et une réévaluation des doses de <5> Prednisone </drug>.",
                  " Un traitment prophylactique par IPP est introduit, à réévaluer après arrêt des corticoïdes."
                 ]
     
    #import re
     
    #ok =re.findall('<(\d)>',''.join(liste_test))
     
     
     
    liste=[]
    liste_1=[]
     
     
     
    for x in range(len(liste_test)):
        i=0
        j=0
        k=0
        l=0
        m=0
     
        if '<1>' in liste_test[x]:
            while i<liste_test[x].count('<1>'):
                liste.append(1)
                i=i+1
     
        if '<2>' in liste_test[x]:
             while j<liste_test[x].count('<2>'):
                liste.append(2)
                j=j+1
     
        if '<3>' in liste_test[x]:
            while k<liste_test[x].count('<3>'):
                liste.append(3)
                k=k+1
        if '<4>' in liste_test[x]:
            while l<liste_test[x].count('<4>'):
                liste.append(4)
                l=l+1
        if '<5>' in liste_test[x]:
            while m<liste_test[x].count('<5>'):
                liste.append(5)
                m=m+1
        if liste_test[x].find('<') == -1:
               liste.append(0)
     
    for x in range(len(liste_test_1)):
        i=0
        j=0
        k=0
        l=0
        m=0
     
        if '<1>' in liste_test_1[x]:
            while i<liste_test_1[x].count('<1>'):
                liste_1.append(1)
                i=i+1
     
        if '<2>' in liste_test_1[x]:
             while j<liste_test_1[x].count('<2>'):
                liste_1.append(2)
                j=j+1
     
        if '<3>' in liste_test_1[x]:
            while k<liste_test_1[x].count('<3>'):
                liste_1.append(3)
                k=k+1
        if '<4>' in liste_test_1[x]:
            while l<liste_test_1[x].count('<4>'):
                liste_1.append(4)
                l=l+1
        if '<5>' in liste_test_1[x]:
            while m<liste_test_1[x].count('<5>'):
                liste_1.append(5)
                m=m+1
        if liste_test_1[x].find('<') == -1:
               liste_1.append(0)
     
        if len(liste_test_1[x]) < len(liste_test[x]) :
            liste_1.append(0)

    Et le problème ici reste le meme car il y a un decalage de lecture dans ma seconde liste

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 696
    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 696
    Par défaut
    Citation Envoyé par TitomTommy Voir le message
    Et le problème ici reste le meme car il y a un decalage de lecture dans ma seconde liste
    Quelque soit le problème à résoudre, bon courage à ceux qui auront envie de lire votre code.

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

Discussions similaires

  1. simuler un double click sur une liste dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/09/2005, 10h45
  2. Décalage de bit sur unsigned char [8]
    Par dboulange dans le forum C++
    Réponses: 14
    Dernier message: 26/07/2005, 14h10
  3. Réponses: 4
    Dernier message: 16/06/2005, 15h37
  4. Selectionnet tous ou faire un clear sur une liste
    Par Canou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/11/2004, 10h26
  5. [Débutant][jsp] évènement sur une liste
    Par phoebe dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 14/05/2004, 10h53

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