Hallo,
habe vor ein par tagen begonnen mich in python einzuarbeiten...wollte nun mit python auf meine heimische PostgreSQL-Datenbank zugreifen und ein par daten ziehen und sie in einem TextCtrl wiedergeben... .....habe also ne Query abgefeuert und getresult() getätigt...nun sollte er eine liste von Tupeln erstellt haben...(hat er auch)...doch jetzt weiß ich nich wie ich die liste mit tupeln in strings convertieren kann....bitte helfen...
danke schon im voraus...
Tupeln-->Strings???
äh....ja...wenn ich es mit print ausgebe sieht es so aus......:
ich hätte allerdings gern das sie fein säuberlich in dem TextCtrl stehn like this:
Code: Alles auswählen
[('Test1'), ('Test2'), ('Test3')]
Code: Alles auswählen
Test1
Test2
Test3
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Code: Alles auswählen
res = [('Test1'), ('Test2'), ('Test3')]
for r in res:
print r[0]
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hast mich wieder einmal erwischt, wie ich mit offenen Augen geschlafen habe. Ja, es sind in der Form (Wert) ohne Komma wirklich keine Tupeln. Umso verwunderlicher ist dann wie Python-Anfänger [('Test1'), ('Test2'), ('Test3')] rausbekommt:mawe hat geschrieben:Nur so als ergänzende Frage: Sind das überhaupt Tupeln? Sind's nicht erst welche wenn man ('Test1',) schreibt? Es funktioniert nämlich auch einfach for r in res: print r.
Code: Alles auswählen
In [26]: res = [('Test1'), ('Test2'), ('Test3')]
In [27]: res
Out[27]: ['Test1', 'Test2', 'Test3']
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Das hab ich mir jetzt auch gerade gedacht.mawe hat geschrieben:Nur so als ergänzende Frage: Sind das überhaupt Tupeln? Sind's nicht erst welche wenn man ('Test1',) schreibt? Es funktioniert nämlich auch einfach for r in res: print r.
Code: Alles auswählen
>>> list = [('Test1'), ('Test2'), ('Test3')]
>>> for item in list: print item
...
Test1
Test2
Test3
TUFKAB – the user formerly known as blackbird
Da oben das sind zwar keine Tupel, aber im "Original" sind es sicher welche. Die kommen aus der Datenbank und laut DB Api 2.0 werden Tupel zurückgegeben.mawe hat geschrieben:Nur so als ergänzende Frage: Sind das überhaupt Tupeln? Sind's nicht erst welche wenn man ('Test1',) schreibt?
vielen dank für eure vielen antworten es funktioniert jetz...ich will ja nich aufdringlich werden aber kann mir auch einer erklären wie genau und warum..das jetz funktioniert habe folgene variante benutzt...
Code: Alles auswählen
res = [('Test1'), ('Test2'), ('Test3')]
for r in res:
print r[0]
" Hast mich wieder einmal erwischt, wie ich mit offenen Augen geschlafen habe. Ja, es sind in der Form (Wert) ohne Komma wirklich keine Tupeln. Umso verwunderlicher ist dann wie Python-Anfänger [('Test1'), ('Test2'), ('Test3')] "
ich arbeite gerade mit PyGreSQL und wenn dort mit query's und vorallem mit getresult() gearbeitet wird ...werden sachen wie [('Test1'), ('Test2'), ('Test3')]
zurück gegeben...
ich arbeite gerade mit PyGreSQL und wenn dort mit query's und vorallem mit getresult() gearbeitet wird ...werden sachen wie [('Test1'), ('Test2'), ('Test3')]
zurück gegeben...
-
- User
- Beiträge: 773
- Registriert: Mittwoch 5. November 2003, 18:06
- Wohnort: Schweiz
- Kontaktdaten:
Hi
Ich nehme an dass es nur wegen der Darstellung dazu gekommen ist:
Anzeige: [('Test1'), ('Test2'), ('Test3')] -> sind tuples (mit tuple('Test1') erstellt oder so)
Wenn man es halt so wieder in python eingibt, werden daraus halt strings weil bei tuples mit einem element wird kein tuple erstellt.
Gruss
Ich nehme an dass es nur wegen der Darstellung dazu gekommen ist:
Anzeige: [('Test1'), ('Test2'), ('Test3')] -> sind tuples (mit tuple('Test1') erstellt oder so)
Wenn man es halt so wieder in python eingibt, werden daraus halt strings weil bei tuples mit einem element wird kein tuple erstellt.
Code: Alles auswählen
tuple( ['Test1'] ) -> ('Test1')
eval(" ('Test1') ") -> 'Test1'
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das ist recht einfach: Es ist ja erstmal eine Liste, in der Tupeln sind (sein sollten). Durch diese iterierst du mit for (siehe for in einem beliebigen Python-Buch). Dann hast du die einzelnen Tupeln, auf die du zugreifen kannst. Diese können mehrere Werte beinhalten, aber du willst den ersten Wert, also [0]. Klarer?Python-Anfänger hat geschrieben:vielen dank für eure vielen antworten es funktioniert jetz...ich will ja nich aufdringlich werden aber kann mir auch einer erklären wie genau und warum..das jetz funktioniert habe folgene variante benutzt...Code: Alles auswählen
res = [('Test1'), ('Test2'), ('Test3')] for r in res: print r[0]
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice