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 :

tableau plusieurs dimensions


Sujet :

Python

  1. #1
    Invité
    Invité(e)
    Par défaut tableau plusieurs dimensions
    Je me suis posé tout seul une colle. Je veux transcrire en python un vieux programme en Java, seulement, je bute sur quelque chose de bête : les tableaux. Comment transcrire ça en python :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    tab  = new int [9][9][9][9][9];
        for (int a = 0; a < 9; a ++)
          for (int b = 0; b < 9; b ++)
            for (int c = 0; c < 9; c ++)
              for (int d = 0; d < 9; d ++)
                for (int e = 0; e < 9; e ++)
                   tab[a][b][c][d][e] = -1;

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Par défaut
    Salut.

    Si tu t'autorises numpy, moi je te propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    >>> import numpy
    >>> a=-numpy.ones((10,10))
    >>> a
    array([[-1., -1., -1., -1., -1., -1., -1., -1., -1., -1.],
           [-1., -1., -1., -1., -1., -1., -1., -1., -1., -1.],
           [-1., -1., -1., -1., -1., -1., -1., -1., -1., -1.],
           [-1., -1., -1., -1., -1., -1., -1., -1., -1., -1.],
           [-1., -1., -1., -1., -1., -1., -1., -1., -1., -1.],
           [-1., -1., -1., -1., -1., -1., -1., -1., -1., -1.],
           [-1., -1., -1., -1., -1., -1., -1., -1., -1., -1.],
           [-1., -1., -1., -1., -1., -1., -1., -1., -1., -1.],
           [-1., -1., -1., -1., -1., -1., -1., -1., -1., -1.],
           [-1., -1., -1., -1., -1., -1., -1., -1., -1., -1.]])

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Par défaut
    En tu peux même t'arrêter à 5 lignes !!....

  4. #4
    Invité
    Invité(e)
    Par défaut
    Mais là je n'ai que 2 dimensions, moi il m'en faut 5. J'ai trouvé ça mais index out of range :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    self.rules=[]
    for a in range(8):
    	self.rules+=[[]]
    	for b in range(8):
    		self.rules[a]+=[[]]
    		for c in range(8):
    			self.rules[b]+=[[]]   
    			for d in range(8):
    				self.rules[c]+=[[]]  
    				for e in range(8):
    					self.rules[a][b][c][d]+=[0]

    EDIT : à priori, ça ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for a in range(8):
    self.rules+=[[]]
    	for b in range(8):
    		self.rules[a]+=[[]]
    		for c in range(8):
    			self.rules[a][b]+=[[]]   
    			for d in range(8):
    				self.rules[a][b][c]+=[[]]  
    				for e in range(8):
    					self.rules[a][b][c][d]+=[0]

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Par défaut
    Désolé de ma réponse un peu rapide...
    Mais l'idée est là quand même. Je pense que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import numpy
    a = -numpy.ones((10,10,10,10,10))
    est ce que tu cherches à faire (j'espère avoir fait suffisamment attention ce coup-ci...)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Par défaut
    Pour infor je rajouterai que si tu veux te passer de numpy tu dois pouvoir faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>> a = -1
    >>> for j in range(5):
    ...     a = [a for i in range(10)]

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 080
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [[[[[-1]*9 for a in range(10)]for b in range(10)]for c in range(10)]for d in range(10)]

  8. #8
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Bonsoir,

    Voici "une autre méthode"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def matrice(nb_ln=10, nb_col=10, default=-1):
        mat = []
        for i in range(nb_ln):
            ln = []
            for j in range(nb_col):
                ln.append(default)
            mat.append(ln)
        return mat
    Ce qui donne
    >>> mat = matrice()
    >>> for ln in mat:
    print (ln)


    [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
    [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
    [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
    [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
    [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
    [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
    [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
    [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
    [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
    [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]
    >>>
    a plus.
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  9. #9
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 080
    Par défaut
    il veut 5 dimensions.

  10. #10
    Membre très actif
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Par défaut
    Bonsoir,
    @Josmiley:
    il veut 5 dimensions.
    A oui.


    Ton code il tourne comme il faut. je me suis laissé tromper par IDLE qui trainait à affichier le résultat . (C'est pas croyable les difficultés d'affichage).
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

Discussions similaires

  1. Initialisation d'un tableau à plusieurs dimensions
    Par kinouseb dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/02/2007, 13h16
  2. problème avec un tableau à plusieurs dimensions
    Par lelutin dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/09/2006, 12h05
  3. Réponses: 3
    Dernier message: 26/05/2006, 19h49
  4. Réponses: 7
    Dernier message: 19/01/2006, 18h57
  5. tableau à plusieurs dimensions
    Par pekka77 dans le forum C
    Réponses: 11
    Dernier message: 07/02/2005, 19h42

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