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 :

former une structure identique à une autre par de nouvelles valeurs


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Par défaut former une structure identique à une autre par de nouvelles valeurs
    étant donné
    une structure sous_chaine : [(13, 4), (13, 6), (4, 6), (13, 4, 6)]
    je veux affecter dans density_sous_chaine la densité sous cette forme [(0.5,0.4),(,),.... ]respectivement et puis la somme (0.5+0.4) c'est à dire pour (1,4) -->(0.5,0.4) puis -->(0.9) ,
    alors que j'ai le résultat : sous_chaine_density [0.7, 0.075, 0.7, 0.08, 0.075, 0.08, 0.7, 0.075, 0.08]
    avez vous une idée , j'ai pensé à groupby() et starmap() !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                                     sous_chaine=[]
                                    density_sous_chaine=[]
                                    x=len(chaine_precedence)
                                    for j in range (2,x+1):
                                        for i in combinations(chaine_precedence,j):
                                            sous_chaine.append(i)
                                    print("sous_chaine",sous_chaine)
                                    for m in sous_chaine:
                                        print ('m',m) ;
                                        for n in m:
                                            density_sous_chaine.append(get_task_density(n))
                                            #groupby(add(get_task_density(n))
                                    print("sous_chaine_density", density_sous_chaine)

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Il faudrait expliciter un peu plus la question et l'exemple que je ne comprends pas. Par exemple, comment passe-t-on de (13, 4) à (0.5,0.4) ?

  3. #3
    Membre très actif
    Femme Profil pro
    étudiante chercheuse
    Inscrit en
    Septembre 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante chercheuse
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 274
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Bonjour,

    Il faudrait expliciter un peu plus la question et l'exemple que je ne comprends pas. Par exemple, comment passe-t-on de (13, 4) à (0.5,0.4) ?
    c'est à travers une fonction density(13) qui donne la valeur de densité de tâche 13,...

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par FATENMRABET Voir le message
    c'est à travers une fonction density(13) qui donne la valeur de densité de tâche 13,...
    Ouais, super. On te demande "comment on passe..." et tu réponds "à travers une fonction". C'est évident qu'on transforme un nombre en un autre par une fonction. C'est ce qu'on apprend en 6°.
    Tu ne voudrais pas expliquer le détail des calculs qui transforment le couple (13 ; 4) en (0.5 ; 0.4) ???

    Et bonjour quand-même !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    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 752
    Par défaut
    Salut,

    Construire une liste NL à partir des éléments d'une liste L de départ auxquels on applique une fonction s'écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    L = [ 1, 2 ]
    NL = []
    for e in L:
         v = 2*e
         NL.append(v)
    Si on remplace la liste de départ par un tableau M, on se retrouve à itérer la même opération sur autant de "lignes" qu'il y a dans le tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    M = [ [ 1, 2 ], [ 3, 4] ]
    NM = []
    for L in M:
        NL = []
        for e in L:
             v = 2*e
             NL.append(v)
        NM.append(NL)
    Ces constructions de bases sont à maîtriser avant de partir à coder.

    De même que des "structures" plus compactes comme les compréhensions de listes qui donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NM = [ [ 2*e for e in L ] for L in M ]
    bien plus compact.

    Sinon quelque soit l'algorithme que vous voudrez coder çà sera galère d'autant que c'est pas parce que le code "fonctionne" que vous allez appliquer correctement le bon algo.: c'est beaucoup d'énergie gaspillée dans des détails et perdre la vision d'ensemble.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [XL-2007] Passer d'une cellule à une autre par tabulation
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 11/09/2009, 17h11
  2. Réponses: 7
    Dernier message: 12/08/2008, 16h34
  3. Comment déplacer une tache sous une autre par Macro
    Par yoyo173fr dans le forum VBA Project
    Réponses: 0
    Dernier message: 09/06/2008, 16h25
  4. Insert d'une table à une autre par un trigger
    Par roshy dans le forum Développement
    Réponses: 2
    Dernier message: 11/10/2007, 15h29
  5. passer d'une cellule d'un tableau a une autre par lien hyper
    Par jack_1981 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 28/12/2005, 14h53

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