Python функция «разделить» на повторяющиеся символы - PullRequest
0 голосов
/ 15 февраля 2020

Я прошел через множество потоков в Stackoverflow об использовании функции Split для строк, но все еще неясен следующий вывод:

"aaaaa".split("a")
output: ['', '', '', '', '', '']

"baaaaa".split("a")
output: ['b', '', '', '', '', '']

Может кто-нибудь объяснить, как обрабатываются повторяющиеся символы с помощью функции "split"

1 Ответ

0 голосов
/ 15 февраля 2020

Пустые строки вызваны не тем, что у вас есть повторяющиеся символы, а тем, что в вашей строке есть только разделитель (строка, по которой вы разделяете целевую строку). Вывод str.split не включает разделитель.

Из документов :

str.split(sep=None, maxsplit=-1)

[...]

Если задано sep , последовательные разделители не группируются вместе и считаются разделителями пустых строк (например, '1,,2'.split(',') возвращает ['1', '', '2']). Аргумент sep может состоять из нескольких символов (например, '1<>2<>3'.split('<>') возвращает ['1', '2', '3']). Разделение пустой строки с указанным разделителем возвращает [''].

Другой способ увидеть это:

  1. Разделить вашу строку разделителем; вы получите:

    "aaaaa" --> ['a', 'a', 'a', 'a', 'a']
    
  2. Исключите разделитель из ваших строк, и вы получите:

    ['', '', '', '', ''] 
    

Таким образом, вы получит ваш вывод, похожий на вашу вторую строку.

...