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 :

passage d'un dico à une matrice


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Points : 35
    Points
    35
    Par défaut passage d'un dico à une matrice
    Bonjour,

    Voici mon problème:

    J'ai un dictionnaire dont les clés sont les coordonnées x et y d'un coté d'un carré de 10 m. Les valeurs sont des listes de points appartenant aux carrés.

    Je traite les cases une par une (avec for cle in dico) et de temps en temps en fonction d'un résultat je dois re traiter des cases voisines de la case que je viens de traiter. Je prends donc les cases comme elles arrivent
    ça devient vite compliqué.
    J'aimerais donc ordonner mes cases en fonction de leur coordonnées pour faciliter le traitement.
    Une solution qui m'est venue à l'idée est de créer 2 listes "lignes" et "colonnes" qui contiennent les différentes coordonnées (y pour les lignes, x pour les colonnes) des cases. Puis apres avoir ordonné mes listes je fais par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for i in range(len(lignes)):
       for j in range(len(colonnes)):
          if dico.has_key((lignes[i],colonnes[j])): #ma zone n'est pas pleine, il peut                 y avoir des endroits sans points, donc il n'y a pas de cases créee
               #je traite ma case, etc...
    Seulement je ne trouve pas ça terrible. Je voudrais donc savoir s'il n'y pas un moyen de mettre mes listes de points dans une matrice avec pour identidiant leurs clés

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Bonjour pedro99,

    as-tu pensé à utiliser une liste à deux dimensions:
    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
    class Case(object):
        def __repr__(self):
            return "%s: %s" % (self.__class__.__name__, id(self))
     
     
    carre = []
    COTE = 10
    for i in range(COTE):
        colonne = []
        for j in range(COTE):
            colonne.append(Case())
        carre.append(colonne)
     
    print carre[5][7]
    print carre[0][8]
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Points : 35
    Points
    35
    Par défaut
    merci pour la réponse mais entre temps j'ai fais avec ma méthode et ça marche bien.

    encore merci.

Discussions similaires

  1. code de passage d'un tableau à une matrice
    Par yasminacha dans le forum Android
    Réponses: 0
    Dernier message: 15/03/2011, 15h14
  2. Réponses: 1
    Dernier message: 01/08/2010, 14h58
  3. Réponses: 7
    Dernier message: 26/06/2009, 10h54
  4. Passage d'une matrice à un vecteur colonne
    Par feynman dans le forum Fortran
    Réponses: 1
    Dernier message: 26/03/2008, 08h42
  5. Passage en parametre d'une matrice NON carrés
    Par Steffane dans le forum C
    Réponses: 11
    Dernier message: 02/08/2006, 14h10

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