str.split(sep)
gibt mindestens ein Element zurück. Wenn sep nicht im Text gefunden wurde, ist dieses eine Element der ursprüngliche, nicht geteilte Text.
Bei einer leeren Zeichenkette wird das Trennzeichen sep natürlich nie gefunden und wird in der Dokumentation ausdrücklich genannt:
Wenn Sie eine leere Zeichenfolge mit einem angegebenen Trennzeichen trennen, wird
['']
zurückgegeben.
Sie sind wahrscheinlich verwirrt durch das Verhalten der Option None
delimiter (der Standardwert):
Wenn sep nicht angegeben ist oder
None
, wird ein anderer Aufteilungsalgorithmus angewendet: Läufe von aufeinander folgenden Leerzeichen werden als einzelnes Trennzeichen betrachtet, und das Ergebnis enthält am Anfang keine leeren Zeichenfolgen oder enden, wenn die Zeichenfolge führende oder nachfolgende Leerzeichen enthält. Wenn Sie also eine leere Zeichenfolge oder eine Zeichenfolge bestehend aus nur Leerzeichen mit einemNone
Trennzeichen aufteilen, wird[]
zurückgegeben.
(Betonung meiner). Das macht str.split(None)
die Ausnahme , nicht die Regel.
Dies könnte relevant sein:
Warum werden leere Strings in split () Ergebnissen zurückgegeben?
split () ist als Gegenstück zu join () und:
gedacht %Vor%