Der group_when Generator nimmt ein iterables und ein Prädikat als Parameter: es erzeugt Listen, die jeweils in einem Wert aus dem iterablen enden, wo das Prädikat True ist. Wenn der iterable auf einem Wert endet, für die das Prädikat false zurückgibt, ergeben eine endgültige Liste alle Werte von dem einen nach dem vorherigen Ende mit dem letzten Wert enthält, von der iterable erzeugtFunktion nimmt Iterabls und gibt eine Liste zurück
zum Beispiel:
for i in group_when('combustibles', lambda x : x in 'aeiou'):
print(i,end='')
druckt die 5 Listen ['c', 'o'] ['m', 'b', 'u'] ['s', 't', 'i'] ['b', 'l', ' e '] [' s '].
meine Funktion wird so nah an der richtigen Antwort. wenn der Eingang
('combustibles', lambda x : x in 'aeiou')
meine Funktion kehrt
[['c', 'o'], ['m', 'b', 'u'], ['s', 't', 'i'], ['b', 'l', 'e']]
aber das sollte korrekt ausgegeben werden:
[['c', 'o'], ['m', 'b', 'u'], ['s', 't', 'i'], ['b', 'l', 'e'], ['s']]
Deshalb ich nur fehle den letzten Buchstaben 's'. kann mir jemand sagen, wie man es repariert? vielen Dank
posted ich den Fehler, den ich unten habe nur helfen Sie meine Funktion zu verstehen:
26 *Error: Failed [v for v in group_when('combustibles', lambda x : x in 'aeiou')] == [['c', 'o'], ['m', 'b', 'u'], ['s', 't', 'i'], ['b', 'l', 'e'], ['s']]
evaluated: [['c', 'o'], ['m', 'b', 'u'], ['s', 't', 'i'], ['b', 'l', 'e']] == [['c', 'o'], ['m', 'b', 'u'], ['s', 't', 'i'], ['b', 'l', 'e'], ['s']]
27 *Error: Failed [v for v in group_when(hide('combustibles'), lambda x : x in 'aeiou')] == [['c', 'o'], ['m', 'b', 'u'], ['s', 't', 'i'], ['b', 'l', 'e'], ['s']]
evaluated: [['c', 'o'], ['m', 'b', 'u'], ['s', 't', 'i'], ['b', 'l', 'e']] == [['c', 'o'], ['m', 'b', 'u'], ['s', 't', 'i'], ['b', 'l', 'e'], ['s']]
anstelle von 'while' verwenden' for'-Schleife. Ruf 'p (y)' nur einmal an. – Daniel
Ich bin mir nicht 100% sicher, aber brauchst du kein letztes d.append (z)? – bravosierra99
plus das ist nicht wirklich ein Generator richtig? Damit es ein Generator ist, sollte es "Ausbeute" verwenden. Ich bin sicherlich kein Experte für sie, aber ich dachte, das war immer der Fall. – bravosierra99