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 :

trié et additionner des valeurs


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Compositing / Pipeline
    Inscrit en
    Novembre 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Compositing / Pipeline
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2011
    Messages : 63
    Par défaut trié et additionner des valeurs
    Bonjour,

    Je suis confronté à un problème et je n'arrive pas à ordonner mes idées.
    J'ai un dictionnaire avec 3 clés du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    {"shot": "seq0010_sht0010", "start_time": 1000, "duration": 74}
    {"shot": "seq0020_sht0010", "start_time": 1000, "duration": 54}
    {"shot": "seq0020_sht0020", "start_time": 1000, "duration": 30}
    {"shot": "seq0020_sht0030", "start_time": 1000, "duration": 47}
    {"shot": "seq0020_sht0040", "start_time": 1000, "duration": 117}
    {"shot": "seq0030_sht0010", "start_time": 1000, "duration": 209}
    {"shot": "seq0030_sht0020", "start_time": 1000, "duration": 117}
    {"shot": "seq0030_sht0030", "start_time": 1000, "duration": 74}
    {"shot": "seq0030_sht0040", "start_time": 1000, "duration": 112}
    Il faudrait que je l'ordonne de manière à rassembler tout les seq0010, seq0020, ect ensemble afin d'additionner la durée.
    sachant qu'a chaque nouvelle séquence ça recommence à zéro.

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    {"shot": "seq0010_sht0010", "start_time": 1000, "duration": 74, "end_time": 1074}
    {"shot": "seq0020_sht0010", "start_time": 1000, "duration": 54, "end_time": 1054}
    {"shot": "seq0020_sht0020", "start_time": 1000, "duration": 30, "end_time": 1084}
    {"shot": "seq0020_sht0030", "start_time": 1000, "duration": 47, "end_time": 1131}
    {"shot": "seq0020_sht0040", "start_time": 1000, "duration": 117, "end_time": 1248}
    {"shot": "seq0030_sht0010", "start_time": 1000, "duration": 209, "end_time": 1209}
    {"shot": "seq0030_sht0020", "start_time": 1000, "duration": 117, "end_time": 1326}
    {"shot": "seq0030_sht0030", "start_time": 1000, "duration": 74, "end_time": 1400}
    {"shot": "seq0030_sht0040", "start_time": 1000, "duration": 112, "end_time": 1512}
    j'ai commencer à séparer via reg "seq0030_sht0040" afin de voir les doublons et les mettre dans une liste.
    mais je ne sais pas si c'est une bonne idée, et pour additionner ensuite. c'est encore pire.

    merci,

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

    Ce que vous montrez est une liste de 9 dictionnaires où vous avez des valeurs nommées et ordonnées suivant la valeur de la clef "shot".

    Donc déjà, ce que vous racontez
    Citation Envoyé par Miaz3 Voir le message
    Il faudrait que je l'ordonne de manière à rassembler tout les seq0010, seq0020, ect ensemble afin d'additionner la durée
    sachant qu'a chaque nouvelle séquence ça recommence à zéro.
    n'est pas si clair... et on ne sait pas si une nouvelle séquence est un des dictionnaires parmi les 9 affichés (dans ce cas, c'est presque trivial) ou une autre liste de dictionnaires (et dans ce cas, faire la somme des clefs "shot" identiques).

    Dans tous les cas, prendre une liste et faire la somme partielle de ses éléments ou pendre un tableau et faire la somme des valeurs de la 3ème colonne n'est pas si compliqué.

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

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Ou est la difficulté ? ....

    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
    16
    17
    18
    data=[{"shot": "seq0010_sht0010", "start_time": 1000, "duration": 74, "end_time": 1074},
    {"shot": "seq0020_sht0010", "start_time": 1000, "duration": 54, "end_time": 1054},
    {"shot": "seq0020_sht0020", "start_time": 1000, "duration": 30, "end_time": 1084},
    {"shot": "seq0020_sht0030", "start_time": 1000, "duration": 47, "end_time": 1131},
    {"shot": "seq0020_sht0040", "start_time": 1000, "duration": 117, "end_time": 1248},
    {"shot": "seq0030_sht0010", "start_time": 1000, "duration": 209, "end_time": 1209},
    {"shot": "seq0030_sht0020", "start_time": 1000, "duration": 117, "end_time": 1326},
    {"shot": "seq0030_sht0030", "start_time": 1000, "duration": 74, "end_time": 1400},
    {"shot": "seq0030_sht0040", "start_time": 1000, "duration": 112, "end_time": 1512}]
     
     
    res={}
    for elt in data :
        seq = elt["shot"][:7]
        if seq not in res : res[seq]=0
        res[seq] += elt["duration"]
     
    print(res)

Discussions similaires

  1. additionner des valeurs en hexa provenant d'un chaine
    Par matlinuxos dans le forum Débuter
    Réponses: 9
    Dernier message: 29/08/2011, 18h04
  2. additionner des valeurs entre 2 dates
    Par mgrizzly dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/04/2010, 16h38
  3. Réponses: 5
    Dernier message: 10/12/2007, 15h24
  4. Réponses: 5
    Dernier message: 29/03/2007, 16h52
  5. [XSLT] Tri personalisé selon des valeurs
    Par Clad3 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/07/2006, 14h46

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