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

Contribuez Python Discussion :

Python probléme, convertion liste de liste de str en liste de liste int [Python 3.X]


Sujet :

Contribuez Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    avant, responsable réseau ....
    Inscrit en
    Décembre 2012
    Messages
    3
    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 : 3
    Points : 8
    Points
    8
    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
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    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 éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    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
    Futur Membre du Club
    Homme Profil pro
    avant, responsable réseau ....
    Inscrit en
    Décembre 2012
    Messages
    3
    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 : 3
    Points : 8
    Points
    8
    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. [MySQL] Problème de liste déroulante utilisant une valeur d'une autre liste
    Par Lydie12 dans le forum PHP & Base de données
    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