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 :

Concatenation de listes en python


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 31
    Points : 28
    Points
    28
    Par défaut Concatenation de listes en python
    Bonjour à tous

    Voila mon problème est assez simple mais je ne sais pas comment le résoudre.

    Sous Tkinter, en python, je souhaiterai détecter la position d'un clic de souris dans un canvas (ça je sais faire) puis ensuite récupérer une liste avec toutes les positions de ces clics pour en tracer le polygone.

    Merci d'avance de votre réponse

    Nicolas.

  2. #2
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Points : 891
    Points
    891
    Par défaut
    bonjour, je suppose que vous récupérez un tuple (x,y) des coordonnées.

    déclarez donc une liste et ajoutez ce tuple via un maliste.append(montuple)

    l'ajout sera fait en fin de liste

    Bon courage.

  3. #3
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir,

    Exact airod.

    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
    try:
       import Tkinter as Tk
    except:
       import tkinter as Tk
     
    def create_figure(ptliste):
        cv.create_polygon(ptliste, fill='black')
     
    def callback(event, liste=[]):
        liste.append((event.x, event.y))
        if len(liste) == 4:
            create_figure(liste)
            del(liste[:])
     
    root=Tk.Tk() 
    cv=Tk.Canvas(root, width=300, height=300, bg='white')
    cv.pack(side=Tk.TOP)
    cv.bind("<Button-1>", callback)
    Tk.Button(root, text="Quitter", command=root.quit).pack(side=Tk.BOTTOM)
    root.mainloop()
    @+
    Merci d'utiliser le forum pour les questions techniques.

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Ou, suivant le besoin

    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
    try:
       import Tkinter as Tk
    except:
       import tkinter as Tk
     
    def create_figure():
        cv.create_polygon(liste, fill='black')
     
    def callback(event):
        liste.append((event.x, event.y))
     
    def affiche():
        create_figure()
        del(liste[:])
     
    liste=[]
    root=Tk.Tk()
    cv=Tk.Canvas(root, width=300, height=300, bg='white')
    cv.pack()
    cv.bind("<Button-1>", callback)
    Tk.Button(root, text="Afficher", command=affiche).pack(side=Tk.RIGHT)
    Tk.Button(root, text="Quitter", command=root.quit).pack(side=Tk.LEFT)
    root.mainloop()
    @++
    Merci d'utiliser le forum pour les questions techniques.

  5. #5
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Bonjour,
    Tu pourrais egalement te pencher du coter de l event "Motion" pour faire les dessins pendant les deplacements de la souris.
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  6. #6
    Membre confirmé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Points : 455
    Points
    455
    Billets dans le blog
    1
    Par défaut
    Je me permets une petite remarque purement syntaxique PauseKawa :
    dans ton premier exemple tu utilises la persistance du paramètre liste du fait qu'il a une valeur par défaut.
    C'est une atuce purement pythonesque pas toujours facile à comprendre quand on débute.
    (en tous cas, moi, ça m'a laissé perplexe un moment... )

    Hadrien
    Captain'Flam
    anciennement Sopsag, aka Hadrien
    Win seven x64 & Win 10 / Visual 2017 / Python 2.7 / Eclipse

  7. #7
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    C'est vrais qu'il aurait été plus sage de ne pas mettre un 'piège' et de faire comme dans le second exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def create_figure():
        cv.create_polygon(liste, fill='black')
     
    def callback(event):
        liste.append((event.x, event.y))
        if len(liste) == 4:
            create_figure()
            del(liste[:])
     
    liste = []
    root=Tk.Tk()
    Après tout c'est un Important warning (4.7.1)

    @+
    Merci d'utiliser le forum pour les questions techniques.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    Merci beaucoup à tous pour vos réponses ! Ca m'aide énormément.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. concatenations des liste
    Par Johana dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/09/2007, 21h38
  2. concatener deux listes
    Par GI_GI dans le forum Général VBA
    Réponses: 3
    Dernier message: 21/01/2007, 15h41
  3. Concatener une liste d'email de ma table
    Par totoalareunion dans le forum Access
    Réponses: 4
    Dernier message: 15/01/2007, 19h35
  4. Supprimer les doubles d'une liste en python
    Par Sebcaen dans le forum Général Python
    Réponses: 2
    Dernier message: 22/10/2006, 18h41
  5. concatener deux listes
    Par adel25 dans le forum C++
    Réponses: 1
    Dernier message: 22/09/2005, 12h56

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