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 :

stocker des valeurs dans un tableau


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Par défaut stocker des valeurs dans un tableau
    Bonjour à tous,

    J'avance peu à peu (un grand merci a tous ceux qui m'aident) dans mon projet et je voudrais maintenant stocker des valeurs de variables de temps dans un tableau du genre suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ref            debut                fin
    1               11:12:47         11:15:57
    2               14:24:41         14:31:01
    3               18:52:54         19:02:54
    Etc.....

    Le problème c'est que je ne sais pas quelle route prendre, je lis des sites me disant de le faire avec une liste, d'autres avec un array et d'autres de le faire avec un numpy....

    La liste me semble inappropriée parce que ca n'est pas en 2D et le manque d'index va rendre le traitement très compliqué et je ne connais pas la différence entre un array et un numpy.

    Est-ce qu'une ame charitable peut me mettre sur la voie en me donnant un bout de code qui va me créer ca et ensuite j'essaie de le remplir avec mes variable ?

    Merci d'avance

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par jchuillier2 Voir le message
    Est-ce qu'une ame charitable peut me mettre sur la voie en me donnant un bout de code qui va me créer ca et ensuite j'essaie de le remplir avec mes variable ?
    Les éléments d'une liste de listes demandent 2 indices pour être adressés et constitue un tableau basique qu'on parcours avec des boucle imbriquées (une pour chaque indice).

    Pour les exemples, c'est dans les premiers chapitres de tous les tutos.

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

  3. #3
    Membre confirmé
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Par défaut
    UPDATE

    J'essaie de le faire avec des listes imbriquée de type c60=([valeurs de c60d],[valeurs de c60f])

    Donc pour chaque nouvelle création de c60d et c60f à la fin de traitement je voudrais faire un c60[0].append(c60d) mais j'ai une erreur list index out of range.

    En bref je veux rajouter à ma liste c60[0] le contenu de c60d et à ma liste c60[1] le contenu de c60f et je ne connais pas la syntaxe pour faire ca vu que le truc qui me semble evident en utilisant append ne fonctionne pas.

    Merci de votre aide

  4. #4
    Membre confirmé
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Par défaut
    Update 2 : ca fonctionne !!!

    En fait il faut créer une liste vide car on ne peut pas faire un append si la liste est vide, c'est couillon mais c'est comme ca.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par jchuillier2 Voir le message
    En fait il faut créer une liste vide car on ne peut pas faire un append si la liste est vide, c'est couillon mais c'est comme ca.

    IndexError, c'est une histoire d'indice.

    Le propre d'une liste vide étant de ne contenir aucun élément, c'est c60[0] qui plante (si la liste est vide, le premier élément de la liste n'existe pas) avant le .append.

    A écrire un code basé sur des théories foireuses, vous allez peut être arriver à faire marcher quelque chose après avoir passé des heures à bidouiller pour que çà marche.

    Si çà arrive ne toucher plus à rien car, vous aurez juste construit un château de carte qui va s'écrouler au premier coup de vent.

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

  6. #6
    Membre confirmé
    Homme Profil pro
    team manager
    Inscrit en
    Juin 2015
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : team manager
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 191
    Par défaut
    En relisant je me suis apercu que je me suis trompé, il faut créer une liste NON vide.

    Donc je crée une liste vide, je lui mets un enregistrement vide au début et après je fais mes append, et la ca fonctionne.

    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
    19
    20
    21
    22
    23
    24
    25
    from datetime import *
    import time
    def timedelta2hhmmss(delta):
    	(h, r) = divmod(delta.seconds, 3600)
    	(m, s) = divmod(r, 60)
    	return "%s%02d:%02d:%02d" % (
    		"%d jour(s) " % delta.days if delta.days > 0 else "",
    		h,
    		m,
    		s,
    	)
    saisie=0
    c60=[[0],[0]]
    while saisie != "X":
        saisie=input("Tapez entree pour le début du code 60, X pour sortir : ") 
        c60d=datetime.now()
        saisie=input("Tapez entree pour la fin du code 60, X pour sortir   : ")
        c60f=datetime.now()
        print ("Debut ", c60d.strftime("%H:%M:%S"))
        print ("Fin   ", c60f.strftime("%H:%M:%S"))
        c60x=c60f-c60d
        print ("Duree ", timedelta2hhmmss(c60x))
        c60[0].append (c60d)
        c60[1].append (c60f)
        print (c60.strftime("%H:%M:%S"))
    Merci des l'aide

  7. #7
    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
    Bonjour
    Citation Envoyé par jchuillier2 Voir le message
    En relisant je me suis apercu que je me suis trompé, il faut créer une liste NON vide.
    Ce n'est pas une liste vide qui interdit un append dessus => x=[]; x.append("toto"). En revanche, si tu veux faire un append sur c60[0] il faut que c60[0] existe !!! => c60=[[], []]. Maintenant, comme je l'ai dit dans ton précédent topic (on se demande pourquoi tu as créé un nouveau topic pour le même sujet) stocker n "début" puis n "fin" c'est un peu idiot (pour afficher les début et fin il te faudra parcourir 2 listes en parallèle) alors que tu peux tout à fait stocker [(debut1, fin1), (debut2, fin2), ...].

    Citation Envoyé par jchuillier2 Voir le message
    Donc je crée une liste vide, je lui mets un enregistrement vide au début et après je fais mes append, et la ca fonctionne.
    c60 étant une liste et non un datetime, ça m'étonnerait que print (c60.strftime("%H:%M:%S")) fonctionne. Et pas d'espace entre le nom d'une fonction et ses parenthèses => print(...) et non print (...). Ecrire x=fct() signifie qu'on veut exécuter (les parenthèses indiquent une demande d'appel) fct et récupérer son résultat dans "x", écrire x=fct signifie qu'on veut récupérer dans "x" l'objet "fonction fct".

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    saisie=0
    c60=[]
    while saisie != "X":
    	saisie=input("Tapez entree pour le début du code 60, X pour sortir : ") 
    	c60d=datetime.now()
    	saisie=input("Tapez entree pour la fin du code 60, X pour sortir   : ")
    	c60f=datetime.now()
    	print ("Debut ", c60d.strftime("%H:%M:%S"))
    	print ("Fin   ", c60f.strftime("%H:%M:%S"))
    	c60x=c60f-c60d
    	print ("Duree ", timedelta2hhmmss(c60x))
    	c60.append((c60d, c60f))
    # for
    print(", ".join(map(timedelta2hhmmss, ((x[1] - x[0]) for x in c60))))
    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]

Discussions similaires

  1. stocker des valeurs dans un tableau
    Par johnny-57 dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2017, 08h21
  2. [WD10] Afficher des valeurs dans un tableau
    Par dj-julio dans le forum WinDev
    Réponses: 4
    Dernier message: 19/03/2014, 11h32
  3. [MySQL] Stocker des données dans un tableau
    Par LadyArwen dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/02/2006, 10h40
  4. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41
  5. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 16h01

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