1. #1
    Candidat au Club
    Homme Profil pro
    avant, responsable réseau ....
    Inscrit en
    décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : avant, responsable réseau ....
    Secteur : Associations - ONG

    Informations forums :
    Inscription : décembre 2012
    Messages : 2
    Points : 3
    Points
    3

    Par défaut Python probléme, convertion liste de liste de str en liste de liste int

    Voici Mon problème, je veux faire la convertion indiquée dans le titre, mais...
    Si j'effectue la conversion ligne après ligne, je n'ai pas de problème.
    par contre il met impossible d'effectuer cela si je veux le faire soit dans un while ou un for, et cela quelle que soit
    la manière donc je déclare la liste finale.
    Donc si quelqu'un peut me dire pourquoi ma liste finale est toujours remplie complétement qu'avec la dernière liste copiée, je suis preneur.
    Cela est d'autant plus troublant qu' a chaque tour du while, c'est vraiment à la copie indexée que l'on voit apparaitre
    le problè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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    a=[["1","1"],["2","2"],["3","3"]] # variable a conserver dans ce type de format mais en convertissant les "" en int 
    b=["",""]
    c=[0,0]
    l = 3*[0]  ## peu importe ce que l'on met dans cette liste 
    for i in range(len(l)):	l[i] = 2*["*"] 
    print ("debut",l)
     
    value=["",""]
    valueA=[0,0]
    nb=len(l)  
    print (nb)
    index=0
    while index <=nb-1:
        print ("A",l,"index :",index)
        print ("B",l[index])
        b=a[index]
        print ("C",b)
        c[0]=int (b[0])
        c[1]=int (b[1])
        print ("D",c,"index :",index,"type index :",type (index))
        l[index]=c
     
        print ("chaine finale",l)
        index+=1
     
     
    input ("on va y arriver, mais quand ?")
    affichage du pg:

    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
     
    debut [['*', '*'], ['*', '*'], ['*', '*']]
    3
    A [['*', '*'], ['*', '*'], ['*', '*']] index : 0
    B ['*', '*']
    C ['1', '1']
    D [1, 1] index : 0 type index : <class 'int'>
    chaine finale [[1, 1], ['*', '*'], ['*', '*']]
    A [[1, 1], ['*', '*'], ['*', '*']] index : 1
    B ['*', '*']
    C ['2', '2']
    D [2, 2] index : 1 type index : <class 'int'>
    chaine finale [[2, 2], [2, 2], ['*', '*']]
    A [[2, 2], [2, 2], ['*', '*']] index : 2
    B ['*', '*']
    C ['3', '3']
    D [3, 3] index : 2 type index : <class 'int'>
    chaine finale [[3, 3], [3, 3], [3, 3]]
    on va y arriver

  2. #2
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    10 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 10 143
    Points : 16 556
    Points
    16 556

    Par défaut

    Salut,
    Si vous écrivez une chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> c = ['*', '*']
    >>> a = [ c, c, c]
    >>> a
    [['*', '*'], ['*', '*'], ['*', '*']]
    Les 3 items contenus dans "a" sont le même objet (la liste associée à "c").
    Et donc si on change le contenu de ce "c" tous les items de "a" sont aussi modifiés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> c[0] = c[1] = '2'
    >>> a
    [['2', '2'], ['2', '2'], ['2', '2']]
    Ce que vous voulez, c'est à chaque itération, recopier le contenu de c dans l[index], donc écrivez ligne 22 l[index] = c[:].

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

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    3 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 3 175
    Points : 4 884
    Points
    4 884

    Par défaut

    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a = [["1","1"],["2","2"],["3","3"]]
    >>> b = [list(map(int, x)) for x in a]
    >>> b
    [[1, 1], [2, 2], [3, 3]]
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a = [["1","1"],["2","2"],["3","3"]]
    >>> b = [map(int, x) for x in a]
    >>> b
    [[1, 1], [2, 2], [3, 3]]

  4. #4
    Candidat au Club
    Homme Profil pro
    avant, responsable réseau ....
    Inscrit en
    décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : avant, responsable réseau ....
    Secteur : Associations - ONG

    Informations forums :
    Inscription : décembre 2012
    Messages : 2
    Points : 3
    Points
    3

    Par défaut Merci boucoup pour vos réponses

    Je n'ai pas encore toutes les bases....le passage du plm51 et C vers python n'est pas complétement acquis.
    Merci encore à tous deux

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/09/2008, 17h21
  2. Problème lors de la suppression d'un champ d'une liste
    Par guintolli dans le forum SharePoint
    Réponses: 2
    Dernier message: 25/08/2008, 15h05
  3. Réponses: 75
    Dernier message: 15/06/2007, 15h57
  4. Réponses: 7
    Dernier message: 07/09/2006, 15h17
  5. Réponses: 2
    Dernier message: 17/08/2003, 20h07

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