J'ai une liste du type ['item 1', 'item 2',....'item n'].
J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans
la variable s2..."item n" dans sn
J'utilise une boucle while, mais le problème est au niveau de nom de la
variable qui doit être "dynamique"...
Une idée ?
Merci.
Rémi.
J'ai une liste du type ['item 1', 'item 2',....'item n']. J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans la variable s2..."item n" dans sn J'utilise une boucle while, mais le problème est au niveau de nom de la variable qui doit être "dynamique"... Une idée ? Merci. Rémi.
locals() renvoie le dictionnaire des variables locales. Donc quelque chose comme ceci :
liste=['item 1', 'item 2', 'item n'] for item in liste: name = 's' + item[5:] value = 'value '+item[5:] locals()[name] = value
On peut aussi utiliser "exec", mais personnellement j'aime moins...
Amaury
Bonjour,
J'ai une liste du type ['item 1', 'item 2',....'item n'].
J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans
la variable s2..."item n" dans sn
J'utilise une boucle while, mais le problème est au niveau de nom de la
variable qui doit être "dynamique"...
Une idée ?
Merci.
Rémi.
locals() renvoie le dictionnaire des variables locales.
Donc quelque chose comme ceci :
liste=['item 1', 'item 2', 'item n']
for item in liste:
name = 's' + item[5:]
value = 'value '+item[5:]
locals()[name] = value
On peut aussi utiliser "exec", mais personnellement j'aime moins...
J'ai une liste du type ['item 1', 'item 2',....'item n']. J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans la variable s2..."item n" dans sn J'utilise une boucle while, mais le problème est au niveau de nom de la variable qui doit être "dynamique"... Une idée ? Merci. Rémi.
locals() renvoie le dictionnaire des variables locales. Donc quelque chose comme ceci :
liste=['item 1', 'item 2', 'item n'] for item in liste: name = 's' + item[5:] value = 'value '+item[5:] locals()[name] = value
On peut aussi utiliser "exec", mais personnellement j'aime moins...
Amaury
remi
Bonjour !
L'utilisation d'un dictionnaire devrait convenir : .
Merci. L'idée est aussi de ne pas avoir à numéroter à la main les s_i. J'ai essayé ça à partir de l'idée de dictionnaire :
dict = {} for item in contents_list: #contents_list est la liste faite à partir d'un fichier dict["s_%d" % len(dict)] = item
Maintenant, il faudrait que j'automatise un peu le code suivant : s_0 = dict['s_0'] s_1 = dict['s_1'] s_2 = dict['s_2'] s_3 = dict['s_3'] s_4 = ...
Je vais tenter avec des %d... Si vous avez des conseils, je suis tjs preneur. Merci. Rémi (newbie)
F. Petitjean
Bonjour,
J'ai une liste du type ['item 1', 'item 2',....'item n']. J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans la variable s2..."item n" dans sn super dur :
s1 = "item 1" # ou lst[0] s2 = "item 2" # ou lst[1]
J'utilise une boucle while, mais le problème est au niveau de nom de la variable qui doit être "dynamique"... Qu'appelez-vous une variable dynamique ?
Une idée ? for item in lst:
print item # utiliser la "variable"
Merci. Rémi. Le problème est que python n'a pas vraiment la notion de variable
item est une référence, une étiquette sur chacun des éléments successsifs de la liste lst. Que voulez-vous faire dans votre boucle ?
Bonjour,
J'ai une liste du type ['item 1', 'item 2',....'item n'].
J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans
la variable s2..."item n" dans sn
super dur :
s1 = "item 1" # ou lst[0]
s2 = "item 2" # ou lst[1]
J'utilise une boucle while, mais le problème est au niveau de nom de la
variable qui doit être "dynamique"...
Qu'appelez-vous une variable dynamique ?
Une idée ?
for item in lst:
print item # utiliser la "variable"
Merci.
Rémi.
Le problème est que python n'a pas vraiment la notion de variable
item est une référence, une étiquette sur chacun des éléments
successsifs de la liste lst.
Que voulez-vous faire dans votre boucle ?
J'ai une liste du type ['item 1', 'item 2',....'item n']. J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans la variable s2..."item n" dans sn super dur :
s1 = "item 1" # ou lst[0] s2 = "item 2" # ou lst[1]
J'utilise une boucle while, mais le problème est au niveau de nom de la variable qui doit être "dynamique"... Qu'appelez-vous une variable dynamique ?
Une idée ? for item in lst:
print item # utiliser la "variable"
Merci. Rémi. Le problème est que python n'a pas vraiment la notion de variable
item est une référence, une étiquette sur chacun des éléments successsifs de la liste lst. Que voulez-vous faire dans votre boucle ?
Nicolas
s_0 = dict['s_0'] s_1 = dict['s_1'] s_2 = dict['s_2'] s_3 = dict['s_3'] s_4 = ... je vois pas l'intérêt de la chose... pourquoi ne pas utiliser
directement le dictionnaire, c'est bien plus propre ??
enfin, si tu y tiens vraiment, tu peux faire ça avec des exec() : for i in dict: exec(i+"=dict[i]")
mais c'est à mon humble avis de newbie bien moins efficace...
s_0 = dict['s_0']
s_1 = dict['s_1']
s_2 = dict['s_2']
s_3 = dict['s_3']
s_4 = ...
je vois pas l'intérêt de la chose... pourquoi ne pas utiliser
directement le dictionnaire, c'est bien plus propre ??
enfin, si tu y tiens vraiment, tu peux faire ça avec des exec() :
for i in dict: exec(i+"=dict[i]")
mais c'est à mon humble avis de newbie bien moins efficace...
s_0 = dict['s_0'] s_1 = dict['s_1'] s_2 = dict['s_2'] s_3 = dict['s_3'] s_4 = ... je vois pas l'intérêt de la chose... pourquoi ne pas utiliser
directement le dictionnaire, c'est bien plus propre ??
enfin, si tu y tiens vraiment, tu peux faire ça avec des exec() : for i in dict: exec(i+"=dict[i]")
mais c'est à mon humble avis de newbie bien moins efficace...
remi
Bonjour,
J'ai une liste du type ['item 1', 'item 2',....'item n']. J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans la variable s2..."item n" dans sn
super dur : s1 = "item 1" # ou lst[0] s2 = "item 2" # ou lst[1]
oui mais s'il y a 100 items... L'idée est justement d'affecter la chaîne correspondand au "i-ième item" dans la i_ième variable et ce de manière automatique.
Par exemple faire une s_i = lst[i] avec i variant entre 0 et len(list)... d'où la boucle while.
C'est pour ça que je parle, maladroitement, de nom de variables dynamique.
Merci ! Rémi.
Bonjour,
J'ai une liste du type ['item 1', 'item 2',....'item n'].
J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans
la variable s2..."item n" dans sn
super dur :
s1 = "item 1" # ou lst[0]
s2 = "item 2" # ou lst[1]
oui mais s'il y a 100 items... L'idée est justement d'affecter la chaîne
correspondand au "i-ième item" dans la i_ième variable et ce de
manière automatique.
Par exemple faire une s_i = lst[i] avec i variant entre 0 et
len(list)... d'où la boucle while.
C'est pour ça que je parle, maladroitement, de nom de variables dynamique.
J'ai une liste du type ['item 1', 'item 2',....'item n']. J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans la variable s2..."item n" dans sn
super dur : s1 = "item 1" # ou lst[0] s2 = "item 2" # ou lst[1]
oui mais s'il y a 100 items... L'idée est justement d'affecter la chaîne correspondand au "i-ième item" dans la i_ième variable et ce de manière automatique.
Par exemple faire une s_i = lst[i] avec i variant entre 0 et len(list)... d'où la boucle while.
C'est pour ça que je parle, maladroitement, de nom de variables dynamique.
je vois pas l'intérêt de la chose... pourquoi ne pas utiliser directement le dictionnaire, c'est bien plus propre ??
Euh, comment ? J'ai pas assez RTFM ? Merci. Rémi.
enfin, si tu y tiens vraiment, tu peux faire ça avec des exec() : for i in dict: exec(i+"=dict[i]")
Ca fonctionne ! Merci. Pour info, voici le code :
dict = {} for item in contents_list: dict["s_%d" % len(dict)] = item for i in dict: exec(i+"=dict[i]") # permet de créer les n variables s_i
Pas très élegant ? Rémi.
mais c'est à mon humble avis de newbie bien moins efficace...
F. Petitjean
Bonjour,
J'ai une liste du type ['item 1', 'item 2',....'item n']. J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans la variable s2..."item n" dans sn
super dur : s1 = "item 1" # ou lst[0] s2 = "item 2" # ou lst[1]
oui mais s'il y a 100 items... L'idée est justement d'affecter la chaîne correspondand au "i-ième item" dans la i_ième variable et ce de manière automatique. Et pourquoi tenez vous tant à avoir 100 variables ?
lst[0], ... lst[99] cela ne peuy vraiment pas convenir ?
Par exemple faire une s_i = lst[i] avec i variant entre 0 et len(list)... d'où la boucle while.
C'est pour ça que je parle, maladroitement, de nom de variables dynamique. Et surtout que vous évitez soigneusement de répondre à la question :
pourquoi faire ?
Merci ! Rémi.
Bonjour,
J'ai une liste du type ['item 1', 'item 2',....'item n'].
J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans
la variable s2..."item n" dans sn
super dur :
s1 = "item 1" # ou lst[0]
s2 = "item 2" # ou lst[1]
oui mais s'il y a 100 items... L'idée est justement d'affecter la chaîne
correspondand au "i-ième item" dans la i_ième variable et ce de
manière automatique.
Et pourquoi tenez vous tant à avoir 100 variables ?
lst[0], ... lst[99] cela ne peuy vraiment pas convenir ?
Par exemple faire une s_i = lst[i] avec i variant entre 0 et
len(list)... d'où la boucle while.
C'est pour ça que je parle, maladroitement, de nom de variables dynamique.
Et surtout que vous évitez soigneusement de répondre à la question :
J'ai une liste du type ['item 1', 'item 2',....'item n']. J'aimerai stocker la chaine "item 1" dans la variable s1, "item 2" dans la variable s2..."item n" dans sn
super dur : s1 = "item 1" # ou lst[0] s2 = "item 2" # ou lst[1]
oui mais s'il y a 100 items... L'idée est justement d'affecter la chaîne correspondand au "i-ième item" dans la i_ième variable et ce de manière automatique. Et pourquoi tenez vous tant à avoir 100 variables ?
lst[0], ... lst[99] cela ne peuy vraiment pas convenir ?
Par exemple faire une s_i = lst[i] avec i variant entre 0 et len(list)... d'où la boucle while.
C'est pour ça que je parle, maladroitement, de nom de variables dynamique. Et surtout que vous évitez soigneusement de répondre à la question :
je vois pas l'intérêt de la chose... pourquoi ne pas utiliser directement le dictionnaire, c'est bien plus propre ??
Euh, comment ? J'ai pas assez RTFM ? Merci. Rémi.
enfin, si tu y tiens vraiment, tu peux faire ça avec des exec() : for i in dict: exec(i+"=dict[i]")
Ca fonctionne ! Merci. Pour info, voici le code :
dict = {} for item in contents_list: dict["s_%d" % len(dict)] = item for i in dict: exec(i+"=dict[i]") # permet de créer les n variables s_i
Pas très élegant ?
J'ai une question bête: y aurait-il un rapport avec la facheuse tendance de PHP à demander des nouveau nom de variable pour chaque objet stocké dans un tableau ?
-- Encolpe DEGOUTE http://encolpe.degoute.free.fr/ Logiciels libres, hockey sur glace et autres activités cérébrales
je vois pas l'intérêt de la chose... pourquoi ne pas utiliser
directement le dictionnaire, c'est bien plus propre ??
Euh, comment ? J'ai pas assez RTFM ?
Merci.
Rémi.
enfin, si tu y tiens vraiment, tu peux faire ça avec des exec() :
for i in dict: exec(i+"=dict[i]")
Ca fonctionne ! Merci.
Pour info, voici le code :
dict = {}
for item in contents_list:
dict["s_%d" % len(dict)] = item
for i in dict: exec(i+"=dict[i]") # permet de créer les n variables s_i
Pas très élegant ?
J'ai une question bête: y aurait-il un rapport avec la facheuse tendance
de PHP à demander des nouveau nom de variable pour chaque objet stocké
dans un tableau ?
--
Encolpe DEGOUTE
http://encolpe.degoute.free.fr/
Logiciels libres, hockey sur glace et autres activités cérébrales
je vois pas l'intérêt de la chose... pourquoi ne pas utiliser directement le dictionnaire, c'est bien plus propre ??
Euh, comment ? J'ai pas assez RTFM ? Merci. Rémi.
enfin, si tu y tiens vraiment, tu peux faire ça avec des exec() : for i in dict: exec(i+"=dict[i]")
Ca fonctionne ! Merci. Pour info, voici le code :
dict = {} for item in contents_list: dict["s_%d" % len(dict)] = item for i in dict: exec(i+"=dict[i]") # permet de créer les n variables s_i
Pas très élegant ?
J'ai une question bête: y aurait-il un rapport avec la facheuse tendance de PHP à demander des nouveau nom de variable pour chaque objet stocké dans un tableau ?
-- Encolpe DEGOUTE http://encolpe.degoute.free.fr/ Logiciels libres, hockey sur glace et autres activités cérébrales
remi
Bonjour,
C'est pour ça que je parle, maladroitement, de nom de variables dynamique.
Et surtout que vous évitez soigneusement de répondre à la question : pourquoi faire ?
Arf, oui, c'est vrai, désolé. Mon projet est d'alimenter une FAQ (PHP+Mysql) à partir d'une fichier *.tex très simple. Pour info, c'est une FAQ "droit et TICE".
Le *.tex ressemble par endroits à ça : ########### [...] section{Sites web des étab scolaires}
Ici on va parler de ce qui est dans le titre
subsection{Puis-je mettre la photo d'un élève sur la page d'acc ?}
Et ben non, car d'après l'article XXX du code tant et d'après telle jurisprudence et le bon sens !...
subsection{Que dois-je faire avec les "logs" de connexion Internet des utilisateurs ?}
les diffuser dans la presse locale... ############
Pour cela, un script python m'enverrai les titre des sections, texte d'intro de section, titres de subsection, réponse dans un base de données et ce de manière +/- automatisée...
On m'a conseillé de d'abord le convertir en xml valide (mais pas plus) d'où mes questions actuelles. Pourquoi ? Car en xml, il serait plus facilement manipulable par python (pleins de modules faits pour) pour le convertir, à nouveau, en un fichier sql prêt à être envoyé dans la db.
J'ai pour le moment découpé mon texte en tranches avec : ########### sect = r'section{(.*)}' motif1 = re.compile(sect) contents_list = re.split(motif1,contents) ###########
contents_list est une liste du type : ['Intro','titre section1', 'texte section1 avec les subsections','section2'....]
J'ai essayé ça :
############ dict = {} for item in contents_list: dict["s_%d" % len(dict)] = item for i in dict: exec(i+"=dict[i]") # permet de créer les s_i ############ et maintenant, je pense que cela sera plus simpe à "xmliser" (à coups de sub())en traitant plus ou moins séparemment les s_i...mais peut-être que je fais fausse route ? J''espère ne pas avoir été trop long... Merci en tout cas. Rémi
Bonjour,
C'est pour ça que je parle, maladroitement, de nom de variables dynamique.
Et surtout que vous évitez soigneusement de répondre à la question :
pourquoi faire ?
Arf, oui, c'est vrai, désolé.
Mon projet est d'alimenter une FAQ (PHP+Mysql) à partir d'une fichier
*.tex très simple. Pour info, c'est une FAQ "droit et TICE".
Le *.tex ressemble par endroits à ça :
###########
[...]
section{Sites web des étab scolaires}
Ici on va parler de ce qui est dans le titre
subsection{Puis-je mettre la photo d'un élève sur la page d'acc ?}
Et ben non, car d'après l'article XXX du code tant et d'après telle
jurisprudence et le bon sens !...
subsection{Que dois-je faire avec les "logs" de
connexion Internet des utilisateurs ?}
les diffuser dans la presse locale...
############
Pour cela, un script python m'enverrai les titre des sections, texte
d'intro de section, titres de subsection, réponse dans un base de
données et ce de manière +/- automatisée...
On m'a conseillé de d'abord le convertir en xml valide (mais pas plus)
d'où mes questions actuelles. Pourquoi ? Car en xml, il serait plus
facilement manipulable par python (pleins de modules faits pour) pour le
convertir, à nouveau, en un fichier sql prêt à être envoyé dans la db.
J'ai pour le moment découpé mon texte en tranches avec :
###########
sect = r'\section{(.*)}'
motif1 = re.compile(sect)
contents_list = re.split(motif1,contents)
###########
contents_list est une liste du type :
['Intro','titre section1', 'texte section1 avec les
subsections','section2'....]
J'ai essayé ça :
############
dict = {}
for item in contents_list:
dict["s_%d" % len(dict)] = item
for i in dict: exec(i+"=dict[i]") # permet de créer les s_i
############
et maintenant, je pense que cela sera plus simpe à "xmliser" (à coups de
sub())en traitant plus ou moins séparemment les s_i...mais peut-être que
je fais fausse route ?
J''espère ne pas avoir été trop long...
Merci en tout cas.
Rémi
C'est pour ça que je parle, maladroitement, de nom de variables dynamique.
Et surtout que vous évitez soigneusement de répondre à la question : pourquoi faire ?
Arf, oui, c'est vrai, désolé. Mon projet est d'alimenter une FAQ (PHP+Mysql) à partir d'une fichier *.tex très simple. Pour info, c'est une FAQ "droit et TICE".
Le *.tex ressemble par endroits à ça : ########### [...] section{Sites web des étab scolaires}
Ici on va parler de ce qui est dans le titre
subsection{Puis-je mettre la photo d'un élève sur la page d'acc ?}
Et ben non, car d'après l'article XXX du code tant et d'après telle jurisprudence et le bon sens !...
subsection{Que dois-je faire avec les "logs" de connexion Internet des utilisateurs ?}
les diffuser dans la presse locale... ############
Pour cela, un script python m'enverrai les titre des sections, texte d'intro de section, titres de subsection, réponse dans un base de données et ce de manière +/- automatisée...
On m'a conseillé de d'abord le convertir en xml valide (mais pas plus) d'où mes questions actuelles. Pourquoi ? Car en xml, il serait plus facilement manipulable par python (pleins de modules faits pour) pour le convertir, à nouveau, en un fichier sql prêt à être envoyé dans la db.
J'ai pour le moment découpé mon texte en tranches avec : ########### sect = r'section{(.*)}' motif1 = re.compile(sect) contents_list = re.split(motif1,contents) ###########
contents_list est une liste du type : ['Intro','titre section1', 'texte section1 avec les subsections','section2'....]
J'ai essayé ça :
############ dict = {} for item in contents_list: dict["s_%d" % len(dict)] = item for i in dict: exec(i+"=dict[i]") # permet de créer les s_i ############ et maintenant, je pense que cela sera plus simpe à "xmliser" (à coups de sub())en traitant plus ou moins séparemment les s_i...mais peut-être que je fais fausse route ? J''espère ne pas avoir été trop long... Merci en tout cas. Rémi