wie kriege ich alle vorkommen von 'sub' in einer Liste?
Verfasst: Sonntag 19. Dezember 2004, 01:31
Hallo,
mal wieder ne newbie-Frage, wahrscheinlich gibt's ne schicke Lösung a la 'Liste[0:max].magic(foo)[23]', ich frag mal einfach...
Also, ich bräuchte eine funktion die eine Liste zurückgibt mit den indices
aller vorkommnisse eines Elements in einer Liste, z.B. ich habe eine
wilde Liste mit Namen und will alle Stellen an denen 'Meier' steht.
Ich hab da mal folgendes vorbereitet:
Das klappt auch soweit, nur hab ich irgendwie ein schlechtes Gefühl
dabei und folgende Fragen:
- gibt es womöglich in Python schon eine funktion genau dafür?
(-> hab mir schon in der doku die hacken abgesucht aber nix efunden...)
- wenn nicht, kann man das eleganter lösen?
- und wenn immer noch nicht, wie würde man es machen das es zu
benutzen ist wie list.index(), also zB 'tstlist.ListFind(17)' ...hat das mit
Subclasses zu tun? aber wenn, dann wie?
wieder mal ein dickes 'Danke',
Joerg
Edit (Leonidas): Code in Python Tags gesetzt.
mal wieder ne newbie-Frage, wahrscheinlich gibt's ne schicke Lösung a la 'Liste[0:max].magic(foo)[23]', ich frag mal einfach...

Also, ich bräuchte eine funktion die eine Liste zurückgibt mit den indices
aller vorkommnisse eines Elements in einer Liste, z.B. ich habe eine
wilde Liste mit Namen und will alle Stellen an denen 'Meier' steht.
Ich hab da mal folgendes vorbereitet:
Code: Alles auswählen
tstlist = [1,2,17,3,4,5,6,7,8,2,9, 10, 3,11,12,13,14, 2,15,16,17, 7]
def ListFind(List, sub):
TmpList = []
carryon = 1
index = -1
while carryon:
try:
index = List.index(sub, index+1)
TmpList.append(index)
except ValueError:
carryon = 0
return TmpList
print ListFind(tstlist, 2)
dabei und folgende Fragen:
- gibt es womöglich in Python schon eine funktion genau dafür?
(-> hab mir schon in der doku die hacken abgesucht aber nix efunden...)
- wenn nicht, kann man das eleganter lösen?
- und wenn immer noch nicht, wie würde man es machen das es zu
benutzen ist wie list.index(), also zB 'tstlist.ListFind(17)' ...hat das mit
Subclasses zu tun? aber wenn, dann wie?
wieder mal ein dickes 'Danke',
Joerg
Edit (Leonidas): Code in Python Tags gesetzt.