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

Calcul scientifique Python Discussion :

compacter un programme (matrices)


Sujet :

Calcul scientifique Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut compacter un programme (matrices)
    Bonjour,
    J'ai crée un petit script mais je souhaiterais savoir si je peux (et alors comment) le compacter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def matriceVA(n):
      A=[]
      for i in range(n):
        L=[]
        for k in range(n):
          L.append(abs(i-k))
        A.append(L)
      return(A)
    Merci d'avance pour votre aide!

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    via des list comprehensions on peut résumer facilement la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def matriceVA(n):
       return [[abs(i-k) for k in range(n)] for i in range(n)]
    et si on veut pousser encore un peu le bouchon on peut même simplement se contenter d'un lambda :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> matriceVA = lambda n: [[abs(i-k) for k in range(n)] for i in range(n)]
    >>> matriceVA(5)
    [[0, 1, 2, 3, 4], [1, 0, 1, 2, 3], [2, 1, 0, 1, 2], [3, 2, 1, 0, 1], [4, 3, 2, 1, 0]]

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup

  4. #4
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut
    Pour les liste à plusieurs dimension,je pense que Numpy est mieux,créer une matrice case par case n'est pas très optimisé.
    Après c'est juste pour la performance.

Discussions similaires

  1. Aide de programmation - matrice
    Par InJeCt dans le forum C#
    Réponses: 4
    Dernier message: 11/04/2011, 12h59
  2. Programme C# compatible Compact Framework
    Par godzoid dans le forum Windows Mobile
    Réponses: 4
    Dernier message: 29/11/2007, 14h28
  3. Que fait ce programme de matrices ?
    Par Premium dans le forum C
    Réponses: 10
    Dernier message: 28/07/2006, 23h00
  4. Réponses: 18
    Dernier message: 24/07/2006, 19h30
  5. Réponses: 1
    Dernier message: 18/05/2006, 12h52

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