Python aufteilen einer Liste anhand eines Trennzeichens Wort
Habe ich eine Liste, die verschiedene string-Werte. Ich will split in der Liste, wenn ich sehe WORD
. Das Ergebnis wird eine Liste von Listen (die die Teillisten der original-Liste) enthält genau eine Instanz der WORD
ich kann dies mithilfe einer Schleife, aber ist es ein mehr pythonic Art und Weise zu tun erreichen ?
Beispiel = ['A', 'WORD', 'B' , 'C' , 'WORD' , 'D']
Ergebnis = [['A'], ['WORD','B','C'],['WORD','D']]
Dies ist, was ich versucht haben, aber es eigentlich gar nicht das erreichen, was ich will, da wird es WORD
in eine andere Liste, die es sein sollte in:
def split_excel_cells(delimiter, cell_data):
result = []
temp = []
for cell in cell_data:
if cell == delimiter:
temp.append(cell)
result.append(temp)
temp = []
else:
temp.append(cell)
return result
InformationsquelleAutor Cemre | 2013-03-12
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde einen generator:
Diese Drucke
Den code akzeptiert durchsuchbar, und erzeugt ein iterierbar (die Sie nicht haben zu glätten, in eine Liste, wenn Sie nicht wollen).
InformationsquelleAutor NPE
dies schafft eine aufgeteilte Liste ohne Trennzeichen, das sieht eher logisch für mich:
Wenn Sie darauf bestehen, Trennzeichen enthalten sein, dies sollte den trick tun:
itertools
.Dringend empfehlen diese Antwort, da es viel pythonic mit den eingebauten
itertools
Modul!Leider ist die zweite version gibt Falsches Ergebnis, wenn delimeter wiederholt.
InformationsquelleAutor georg
@NPE ' s Lösung sieht sehr pythonic zu mir. Dies ist ein weiterer mit
itertools
:Dieser code basiert hauptsächlich auf diese Antwort.
InformationsquelleAutor A. Rodas
Gegeben
Code
more_itertools
ist eine third-party Bibliothek installierbar über> pip install more_itertools
.Siehe auch
split_at
undsplit_after
.InformationsquelleAutor pylang