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 :

les tableaux en python [Python 2.X]


Sujet :

Python

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 103
    Points : 47
    Points
    47
    Par défaut les tableaux en python
    Bonjour,

    J'aimerais déclaré un tableau comme ceci

    array[0][0]="toto"
    array[0][1]="tato"
    array[1][0]="tata"
    array[1][1]="tita"

    mais j'avoue que la déclaration que j'ai trouvé des trucs sur internet mais je n'arrive pas à l'implémenter.

    Si quelqu'un peut m'expliqué brièvement.

    Merci par avance

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    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 : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Il faut tester sur l'interpréteur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> array = [[[], []], [[], []]]
    >>> array[0][0] = "toto"
    >>> array[0][1] = "tato"
    >>> array
    [['toto', 'tato'], [[], []]]
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Bonjour

    Citation Envoyé par fred1599
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> array = [[[], []], [[], []]]
    >>> array[0][0] = "toto"
    >>> array[0][1] = "tato"
    >>> array
    [['toto', 'tato'], [[], []]]
    Je trouve l'"initialisation"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> array = [[[], []], [[], []]]
    assez malheureuse (la 2D pose problème ? prenons la 3D : éléments de la liste de listes : des listes vides ...). Certes, in fine, ça fonctionne (car on écrase allègrement ces éléments par une affectation d'une chaine de caractères) mais j'ai peur que cela plonge encore plus le PO dans des abîmes de perplexité ... déjà que ...

    A la limite, j'aurais préféré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> array = [[None, None], [None, None]]
    D'ailleurs, la_fouine1806, quels sont les "trucs" trouvés sur internet qui te laissent perplexe ? C'est peut-être ça que tu devrais poster, non ?
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    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 : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    mais j'ai peur que cela plonge encore plus le PO dans des abîmes de perplexité ... déjà que ...
    C'est voulu ! Simple, problème mal posé, réponses ambiguës, et c'est là toute la difficulté du développement. Quand on réfléchi pas à comment bien concevoir la résolution d'un problème, on se pose très souvent les mauvaises questions

    A la limite, j'aurais préféré : ...
    Pas mieux, on voit bien le problème, ça reste quelque chose d'abstrait et qui donne l'impression que notre solution n'est pas celle qu'attend le PO.

    Du coup espérons l'avoir fait réagir pour avoir enfin un problème bien posé, voir une solution bien pensée.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 103
    Points : 47
    Points
    47
    Par défaut
    Bonjour Messieurs,

    Tout d'abord merci pour vos réponses. Je vais tester dans la fouler.

    Les trucs, que j'ai trouvé sur internet, sont des choses du type array[1].appendix(A) ou des trucs du genre array= 2*[2*[]] pour une matrice 2*2

    J'ai du mal à me le représenter mentalement ...

    Vos explications me conviennent en plus ca me rapproche un peu plus du C que je connais plus. (c'est peut être l'une des raisons pourquoi j'étais perdu ... )

    En tout cas merci, je m'en vais tester de ce pas.

    Je vous tiens au jus si je bloque avant de mettre réolsu. En tout cas merci !

  6. #6
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 103
    Points : 47
    Points
    47
    Par défaut
    Une dernière question,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    StartEnd = 2*[[[],[]]]
    StartEnd[0][0] = "lolo"
    StartEnd[0][1] = "titi"
    StartEnd[1][0] = "toto"
    StartEnd[1][1] = "tata"
    print StartEnd[0][0]
    print StartEnd[0][1]
    print StartEnd[1][0]
    print StartEnd[1][1]
    print StartEnd
    en sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [[[], []], [[], []]]
    toto
    tata
    toto
    tata
    [['toto', 'tata'], ['toto', 'tata']]
    tandis que lorsque je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    StartEnd_1 = [[[],[]],[[],[]]]
    print StartEnd_1
    StartEnd_1[0][0] = "lolo"
    StartEnd_1[0][1] = "titi"
    StartEnd_1[1][0] = "toto"
    StartEnd_1[1][1] = "tata"
    print StartEnd_1[0][0]
    print StartEnd_1[0][1]
    print StartEnd_1[1][0]
    print StartEnd_1[1][1]
    en sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [[[], []], [[], []]]
    lolo
    titi
    toto
    tata
    [['lolo', 'titi'], ['toto', 'tata']]

    Je ne vois pas la différence entre les deux quelqu'un aurait une idée ?

    Merci pour votre retour

  7. #7
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Les "multiplications" de listes sont piégeuses : faut bien savoir ce qu'on fait. Sur un autre exemple (on ne voit rien sur l'initialisation des matrices):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> L = [['toto', 'tata']]*2
    >>> print L
    [['toto', 'tata'], ['toto', 'tata']]
    >>>

    Les éléments de la liste L (la liste contenant 'toto' et 'tata') ont été dupliqués répétés et, au final, on a deux fois la même liste

    (id(qqch) est - je fais court - l'adresse mémoire de qqch)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> print id(L[0])
    4471292632
    >>> print id(L[1])
    4471292632
    Donc, quand tu modifies l'une, tu modifies "les deux" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> L[0][0] = 'titi'
    >>> print L
    [['titi', 'tata'], ['titi', 'tata']]
    >>>
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

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

Discussions similaires

  1. [SWIG] C-Python : les tableaux 2D
    Par lelapindepauline dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 18/04/2011, 16h28
  2. Article sur les tableaux dynamiques
    Par Eric Sigoillot dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2004, 22h00
  3. Réponses: 14
    Dernier message: 01/09/2003, 22h46
  4. Les tableaux en PL/SQL
    Par GRUMLY dans le forum PL/SQL
    Réponses: 5
    Dernier message: 12/08/2002, 18h10

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