Listenelemente n. Anfangsbuchstaben durchsuchen u. Pos. ausg

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Bettina76
User
Beiträge: 12
Registriert: Dienstag 13. August 2013, 15:42

Hallo,
kann mir bitte jmd bei meinem Problem helfen:
Ich habe eine Liste ['A7.1.01.13880', 'A7.1.01.14139', 'R8.1.01.14625']. In dieser Liste will ich jetzt alle Elemente mit dem Anfang "A" suchen und die Positionen dieser Elemente in der Liste ausgeben lassen.
Wahrscheinlich ganz einfach. Aber ich bin Programmieranfänger und habe bisher keinen brauchbaren Hinweise gefunden.
Kann mir jemand weiterhelfen.
Vielen Dank!
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Willkommen im Forum!

Ja, ganz einfach:

Code: Alles auswählen

In [1]: a = ['A7.1.01.13880', 'A7.1.01.14139', 'R8.1.01.14625']

In [2]: [i for i, x in enumerate(a) if x.startswith('A')]
Out[2]: [0, 1]
Das geht natuerlich auch ohne List Comprehension.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo Bettina76,
gerade als Anfänger ist es schwierig die richtige Frage zu stellen. Deshalb frage ich mal nach: Warum möchtest Du die Position der Elemente wissen?
Bettina76
User
Beiträge: 12
Registriert: Dienstag 13. August 2013, 15:42

Hallo cofi,
vielen Dank für Deine Hilfe. Hast mir damit sehr weitergeholfen
So hat's funktioniert.


Hallo Sirius3,
ich will damit mit listbox.delete ein paar Element beim Anhaken einer Checkbox aus einer Listbox wieder löschen.
Funktioniert auch schon fast.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ich rate mal: Es funktioniert nur fast, weil sich die Indizes verschieben.

Entweder du loeschst "von hinten" oder noch besser du erstellst direkt eine neue Liste/Listbox und sammelst die passenden Elemente statt deren Indizes in der List Comprehension.
Bettina76
User
Beiträge: 12
Registriert: Dienstag 13. August 2013, 15:42

Stimmt! Das war mein Problem. Aber das mit dem "von hinten" löschen war ein super Tipp. Danke!
Antworten