perdu dans les listes et les dictionnaires (encore)

Le
Philippe Makowski
Bonjour,

j'ai décidément du mal, voilà mon mon problème :
j'ai un wx.ListBox rempli comme cela :

cur_glob.execute("SELECT DISTINCT C1, C2 FROM T1 ")
for row in cur_glob :
self.section[row[0]]=row
self.lb_section.Clear()
for k, v in self.section.iteritems(): self.lb_section.Append(k, v)

Ensuite en fonction de ce que les utilisateurs selectionnent, je voudrais constituer une chaine que je pourrais utiliser plus loin dans une instruction SQL

avec :
[self.lb_section.GetString(idx) for idx in self.lb_section.GetSelections()]
je récupére bien mes intitulés de la ListBox (qui sont aussi les entrées donc du dictionnaire section)


mais je voudrais écrire une chaine du genre "('A', 'C')" que je pourrais utiliser ailleurs dans le code
'A' et 'B' étant les valeurs correspondantes aux entrées du dictionnaire section


Merci

pour être plus précis par exemple mon dictionnaire section est :
{u'A - libelle 1': (u'A - libelle 1', u'A') , u'B - libelle 2': (u'B - libelle 2', u'B'), u'C - libelle 3': (u'C - libelle 3', u'C')}
ma selection dans Listbox me retourne :
[u'A - libelle 1' , u'C - libelle 3']
et je veux écrire la chaine :
"('A', 'C')"

--
Philippe Makowski
Support et conseil pour Firebird : http://www.espelida.com
Firebird serveur SQL open-source en français http://firebird-fr.eu.org
Ma clé PGP : http://makowski.eu.org/pgpkey.html
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jerome
Le #633347
Philippe Makowski wrote:
Bonjour,

j'ai décidément du mal, voilà mon mon problème :
j'ai un wx.ListBox rempli comme cela :

cur_glob.execute("SELECT DISTINCT C1, C2 FROM T1 ")
for row in cur_glob :
self.section[row[0]]=row
self.lb_section.Clear()
for k, v in self.section.iteritems(): self.lb_section.Append(k, v)

Ensuite en fonction de ce que les utilisateurs selectionnent, je voudrais constituer une chaine que je pourrais utiliser plus loin dans une instruction SQL

avec :
[self.lb_section.GetString(idx) for idx in self.lb_section.GetSelections()]
je récupére bien mes intitulés de la ListBox (qui sont aussi les entrées donc du dictionnaire section)


mais je voudrais écrire une chaine du genre "('A', 'C')" que je pourrais utiliser ailleurs dans le code
'A' et 'B' étant les valeurs correspondantes aux entrées du dictionnaire section


Merci

pour être plus précis par exemple mon dictionnaire section est :
{u'A - libelle 1': (u'A - libelle 1', u'A') , u'B - libelle 2': (u'B - libelle 2', u'B'), u'C - libelle 3': (u'C - libelle 3', u'C')}
ma selection dans Listbox me retourne :
[u'A - libelle 1' , u'C - libelle 3']
et je veux écrire la chaine :
"('A', 'C')"



Bonjour

Est-ce que cela te convient ?

section = {u'A - libelle 1': (u'A - libelle 1', u'A') , u'B -
libelle 2': (u'B - libelle 2', u'B'), u'C - libelle 3': (u'C - libelle



3', u'C')}
sel = [u'A - libelle 1' , u'C - libelle 3']




"(%s)" % ','.join(["'%s'" % section[el][1] for el in sel])




u"('A','C')"



Philippe Makowski
Le #633346
Philippe Makowski wrote:
Bonjour,

j'ai décidément du mal, voilà mon mon problème :
j'ai un wx.ListBox rempli comme cela :

cur_glob.execute("SELECT DISTINCT C1, C2 FROM T1 ")
for row in cur_glob :
self.section[row[0]]=row
self.lb_section.Clear()
for k, v in self.section.iteritems(): self.lb_section.Append(k, v)

Ensuite en fonction de ce que les utilisateurs selectionnent, je voudrais
constituer une chaine que je pourrais utiliser plus loin dans une
instruction SQL

avec :
[self.lb_section.GetString(idx) for idx in self.lb_section.GetSelections()]
je récupére bien mes intitulés de la ListBox (qui sont aussi les entrées
donc du dictionnaire section)


mais je voudrais écrire une chaine du genre "('A', 'C')" que je pourrais
utiliser ailleurs dans le code
'A' et 'B' étant les valeurs correspondantes aux entrées du dictionnaire
section


Merci

pour être plus précis par exemple mon dictionnaire section est :
{u'A - libelle 1': (u'A - libelle 1', u'A') , u'B - libelle 2': (u'B -
libelle 2', u'B'), u'C - libelle 3': (u'C - libelle 3', u'C')}
ma selection dans Listbox me retourne :
[u'A - libelle 1' , u'C - libelle 3']
et je veux écrire la chaine :
"('A', 'C')"



Bonjour

Est-ce que cela te convient ?

section = {u'A - libelle 1': (u'A - libelle 1', u'A') , u'B -
libelle 2': (u'B - libelle 2', u'B'), u'C - libelle 3': (u'C - libelle 3',



u'C')}
sel = [u'A - libelle 1' , u'C - libelle 3']

"(%s)" % ','.join(["'%s'" % section[el][1] for el in sel])




u"('A','C')"


Presque, merci

le problème dans ce cas est la virgule en trop au cas où l'utilisateur
n'a selectionné qu'une seule entrée

--
Philippe Makowski
Support et conseil pour Firebird : http://www.espelida.com
Firebird serveur SQL open-source en français http://firebird-fr.eu.org
Ma clé PGP : http://makowski.eu.org/pgpkey.html




Philippe Makowski
Le #633345
Philippe Makowski wrote:
Bonjour,

j'ai décidément du mal, voilà mon mon problème :
j'ai un wx.ListBox rempli comme cela :

cur_glob.execute("SELECT DISTINCT C1, C2 FROM T1 ")
for row in cur_glob :
self.section[row[0]]=row
self.lb_section.Clear()
for k, v in self.section.iteritems(): self.lb_section.Append(k, v)

Ensuite en fonction de ce que les utilisateurs selectionnent, je voudrais
constituer une chaine que je pourrais utiliser plus loin dans une
instruction SQL

avec :
[self.lb_section.GetString(idx) for idx in
self.lb_section.GetSelections()]
je récupére bien mes intitulés de la ListBox (qui sont aussi les entrées
donc du dictionnaire section)


mais je voudrais écrire une chaine du genre "('A', 'C')" que je pourrais
utiliser ailleurs dans le code
'A' et 'B' étant les valeurs correspondantes aux entrées du dictionnaire
section


Merci

pour être plus précis par exemple mon dictionnaire section est :
{u'A - libelle 1': (u'A - libelle 1', u'A') , u'B - libelle 2': (u'B -
libelle 2', u'B'), u'C - libelle 3': (u'C - libelle 3', u'C')}
ma selection dans Listbox me retourne :
[u'A - libelle 1' , u'C - libelle 3']
et je veux écrire la chaine :
"('A', 'C')"



Bonjour

Est-ce que cela te convient ?

section = {u'A - libelle 1': (u'A - libelle 1', u'A') , u'B -
libelle 2': (u'B - libelle 2', u'B'), u'C - libelle 3': (u'C - libelle 3',



u'C')}
sel = [u'A - libelle 1' , u'C - libelle 3']

"(%s)" % ','.join(["'%s'" % section[el][1] for el in sel])




u"('A','C')"


Presque, merci

le problème dans ce cas est la virgule en trop au cas où l'utilisateur n'a
selectionné qu'une seule entrée


Pardon, non, c'est parfait

merci beaucoup !

--
Philippe Makowski
Support et conseil pour Firebird : http://www.espelida.com
Firebird serveur SQL open-source en français http://firebird-fr.eu.org
Ma clé PGP : http://makowski.eu.org/pgpkey.html





Publicité
Poster une réponse
Anonyme