← Все вопросы

Чем split() без аргумента отличается от split(' ')?

Задан 6 месяцев назад892 просмотров3 ответа
17

Думал, что это одно и то же, но на строке с двойными пробелами получаю разный результат. В чём подвох?

3 ответа

28
✓ Принятый ответ — помог автору

Это разные вещи!

'  a   b '.split()     # ['a', 'b']
'  a   b '.split(' ')  # ['', '', 'a', '', '', 'b', '']

split() без аргумента бьёт по любым пробельным символам (пробелы, табы, переносы), схлопывает подряд идущие и отбрасывает пустышки по краям. А split(' ') бьёт строго по одному пробелу и честно возвращает пустые строки между ними. Для текста почти всегда нужен split() без аргумента.

Андрей Галиуллин Золотое правило: для слов — split() без всего · 5 месяцев назад
9

Коротко: split() умный (схлопывает пробелы), split(' ') тупой (по одному символу).

5

Без аргумента ещё и табы/переносы строк считает разделителями, а split(' ') — только пробел.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект