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 :

Cat str et variable pour nom de liste [Débutant(e)]


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 48
    Par défaut Cat str et variable pour nom de liste
    Bonjour,

    petit soucis en python, j'ai cherché un moment sur internet mais je n'arrive pas à trouver exactement ce que je veux...

    voila mon problème:

    je souhaite crée plusieurs listes numérotées comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    n=0
    chr_%s =[] % (n) ##initialisation de ma liste
    afin que mes listes se nomment chr_1, chr_2...
    le problème c'est que je n'arrive pas à concatener la string chr_1 avec la variable n, j'ai aussi essayé :

    sans succès

    Si quelqu'un pouvez m'aider.

    Merci à vous !

  2. #2
    Membre éclairé
    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
    Billets dans le blog
    1
    Par défaut
    Regarde la fonction exec (https://docs.python.org/2/reference/...ight=exec#exec).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> exec('qsd=456')
    >>> qsd
    456
    Sinon, la fonction globals :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> globals()['aze'] = 321
    >>> aze
    321

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

    Si vous posez cette question, c'est que vous débutez et n'avez pas encore pris le temps de faire le tour des structures de données de bases du langage notamment les "dict"ionaires:
    C'est quand même plus simple d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> chr = dict()
    >>> chr[1] = '123'
    >>> chr[2] = '456'
    >>> chr
    {1: '123', 2: '456'}
    >>>
    ou si vous tenez à ce que la clef soit une chaîne de caractères "composée":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> n = 3; chr['key%s' % n] = '789'
    Cela compris, les "variables" sont dans le dictionnaire "globals()": la même mécanique peut être utilisée pour créer/accéder aux "variables". Mais il sera toujours plus simple d'avoir un dictionnaire "à part".

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

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 48
    Par défaut
    Bonjour,

    Merci pour vos réponses !

    Captain'Flam je pense que ta réponse ne convient pas exactement à ce que je souhaite faire.

    wiztricks je n'avais pas pensé à faire un dictionnaire, cette liste devant elle même être dans un dictionnaire, je jongle entre perl et python, perl permettait me semble t'il de concatener très facilement des variables et des chaînes de caractères.

    Il n'y vraiment aucun autre moyen de nommer mes listes ?

    Merci à vous !

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 683
    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 683
    Par défaut
    Citation Envoyé par TrafalgarD Voir le message
    wiztricks je n'avais pas pensé à faire un dictionnaire, cette liste devant elle même être dans un dictionnaire, je jongle entre perl et python, perl permettait me semble t'il de concatener très facilement des variables et des chaînes de caractères.
    On peut aussi faire çà en Python (globals() est un dictionnaire) mais pas facile pour un cerveau de penser en Python et en Perl en même temps: on mieux on s'embrouille, au pire, c'est un gros mal de tête.

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

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 48
    Par défaut
    j'ai un peu de mal à y avoir claire, je poste toute la fonction que j'avais faite:

    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
    def parsing(file_to_parse,n): ##fournir l'indice n du fichier a parser
     
    	h_file_parsed={}
    	print("chr_"+n)
    	chr_+n=[]
    	print("chr_"+n)
    	#~ start_+n=[]
    	#~ end_+n=[]
    	#~ name_+n=[]
    	#~ strand_+n=[]
    	#~ line_+n=[]
    	file_to_parse=open(file_to_parse,'r')
    	for line in file_to_parse:
    		##file_to_parse={line1}
                key=chr_+n.append(line.split("\t")[0])
                h_file_parsed[key] = start_+n.append(int(line.split("\t")[1]))
                h_file_parsed[key] =start_+n.append(int(line.split("\t")[1]))
                h_file_parsed[key] =end_+n.append(int(line.split("\t")[2]))
                h_file_parsed[key] =name_+n.append(line.split("\t")[3])
                h_file_parsed[key] =strand_+n.append(line.split("\t")[5].split("\n")[0])
                h_file_parsed[key] =line_+n.append(line.split("\n")[0])
    	file_to_parse.close()
    	return h_file_parsed

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 683
    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 683
    Par défaut
    Citation Envoyé par TrafalgarD Voir le message
    j'ai un peu de mal à y avoir claire, je poste toute la fonction que j'avais faite:

    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
    def parsing(file_to_parse,n): ##fournir l'indice n du fichier a parser
     
    	h_file_parsed={}
    	print("chr_"+n)
    	chr_+n=[]
    	print("chr_"+n)
    	#~ start_+n=[]
    	#~ end_+n=[]
    	#~ name_+n=[]
    	#~ strand_+n=[]
    	#~ line_+n=[]
    	file_to_parse=open(file_to_parse,'r')
    	for line in file_to_parse:
    		##file_to_parse={line1}
                key=chr_+n.append(line.split("\t")[0])
                h_file_parsed[key] = start_+n.append(int(line.split("\t")[1]))
                h_file_parsed[key] =start_+n.append(int(line.split("\t")[1]))
                h_file_parsed[key] =end_+n.append(int(line.split("\t")[2]))
                h_file_parsed[key] =name_+n.append(line.split("\t")[3])
                h_file_parsed[key] =strand_+n.append(line.split("\t")[5].split("\n")[0])
                h_file_parsed[key] =line_+n.append(line.split("\n")[0])
    	file_to_parse.close()
    	return h_file_parsed
    Vos variables chr_+n, start_+n, ... sont locales à la fonction qui retourne un dict (h_file_parsed).
    Si vous les nommiez chr, start, ... vous auriez le même résultat et ces noms de variables là seraient acceptables côté Python.
    Pour le reste, je ne comprends pas ce que vous voulez faire: list.append() retourne None, pourquoi l'assigner à h_file_parsed[key]?
    Des différentes assignations à h_file_parsed[key], seule la dernière sera retournée... mais bon çà sera toujours None.
    Si vous n'êtes pas plus à l'aise que çà avec les assignations, les listes et les dictionnaires, ... ouvrir un tuto. pour voir comment çà fonctionne et apprendre à les utiliser s'impose...

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

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 105
    Par défaut
    Bonjour,

    Et le code Perl il correspondait à quoi ?
    Parce que là votre traduction n'a pas à première vue le rendu souhaité.

    Salutations.

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

Discussions similaires

  1. Load data avec une variable pour nom de fichier
    Par kelk1 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 14/01/2016, 14h41
  2. Utilisation de variables pour nom de widgets
    Par Matmal11 dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 20/08/2009, 17h52
  3. [FLASH MX] nom variable pour une fonction
    Par totoche dans le forum Flash
    Réponses: 2
    Dernier message: 20/12/2005, 14h00
  4. Réponses: 7
    Dernier message: 07/09/2004, 14h16
  5. [XSL] utiliser une variable pour nom d'élément
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 07/09/2004, 13h58

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