Метод строки split() разделяет строку на несколько строк по указанному символу
>>> "a_b_c".split('_')
['a', 'b', 'c']
Можно указать максимальное количество разделений
>>> "a_b_c".split('_', 1)
['a', 'b_c']
Или резать с другой стороны с помощью rsplit() (right split)
>>> "a_b_c".rsplit('_', 1)
['a_b', 'c']
А что будет если оставить аргументы пустыми?
>>> "a_b_c".split()
['a_b_c']
Получаем список с одним элементом, потому что по умолчанию используется пробельный символ.
>>> "a b c".split()
['a', 'b', 'c']
То есть это равнозначно такому вызову?
>>> "a b c".split(" ")
['a', 'b', 'c']
Кажется да, но нет! Давайте попробуем добавить пробелов между буквами
>>> "a b c".split(" ")
['a', '', '', 'b', '', '', 'c']
И вот картина уже не так предсказуема 😕
А вот что будет по умолчанию
>>> "a b c".split()
['a', 'b', 'c']
Всё снова красиво! 🤩
По умолчанию в качестве разделителя используется любой пробельный символ, будь то табуляция или новая строка. Включая несколько таких символов идущих подряд. А также игнорируются пробельные символы по краям строки.
>>> "a\t b\n c ".split()
['a', 'b', 'c']
Аналогичный способ можно собрать с помощью регулярного выражения. Но пробелы по краям строки придется обрабатывать дополнительно.
>>> import re
>>> re.split(r"\s+", ' a b c '.strip())
['a', 'b', 'c']
Здесь тоже можно указать количество разделений
>>> re.split(r"\s+", 'a b c', 1)
['a', 'b c']
А что если мы хотим написать красиво, то есть split() без аргументов, но при этом указать количество разделений? В этом случае первым аргументом передаём None
>>> "a\n b c".split(None, 1)
['a', 'b c']
Данный метод не учитывает строки с пробелами, взятые в кавычки
'a "b c" '.split()
['a', '"b', 'c"']
Но для таких случаев есть другие способы.
#tricks#basic
#Italia#Sicilia
L’ex sottosegretario Laura #Castelli (#SCN|Populisti regionalisti) ha annunciato la candidatura a sindaco di Milazzo.
@OsservatorioItaliano
#Italia🇮🇹
#Regionali
#Marche
❗️Francesco #Acquaroli (#FdI|ECR; supportato anche da #LSP|Pfe, #FI|PPE, #UDC|PPE, #NM|PPE, #ScN|Meridionalisti, dissidenti di #IV|RE e civici) è stato rieletto Presidente della Giunta regionale delle Marche.
@TuttoElezioni
#Italia#Sicilia
I deputati di #SCN|Populisti regionalisti, Cateno #DeLuca, Giuseppe #Lombardo e Matteo #Sciotto hanno firmato le loro dimissioni dall’ARS. Il loro obiettivo è quello di raccogliere, entro il 31 luglio, 36 sottoscrizioni determinando così la chiusura anticipata della legislatura e andare al voto nel mese di ottobre.
“Siamo in una fase in Sicilia dove ci troviamo nel bel mezzo del vannamarchismo, dove impera chi si sa vendere meglio”, ha detto il sindaco di Taormina.
@OsservatorioItaliano
#Italia🇮🇹
#Regionali
#Calabria
❗️Roberto #Occhiuto (#FI|PPE; supportato anche da #FdI|ECR, #LSP|PfE, #DC|Centro, #UdC|PPE, #NM|PPE, #ScN|Meridionalisti, #PA|Animalisti) è stato rieletto Presidente della Giunta regionale della Calabria.
@TuttoElezioni
#Italia🇮🇹
#Regionali
#Puglia
Proiezione di Opinio Italia.
Emittente: RaiNews24.
Campione: 5%.
🟧 Antonio #Decaro (#PD|S&D; sostenuto anche da #M5S|LEFT, #AVS|G/EFA|LEFT, #PiùEu|RE, #IV|RE, #Az|RE, #PSI|S&D, #DemoS|S&D, #PRC|LEFT, liste minori e civici): 69,2%
🟦 Luigi #Lobuono (#FdI|ECR, #FI|PPE, #LSP|PfE, #UdC|PPE, #NPSI|Centro-destra, #ScN|Meridionalisti, #PdF|Destra cristiana, #DC|Centro, liste minori e civici): 28,8%
@TuttoElezioni