1
0
mirror of https://github.com/satwikkansal/wtfpython synced 2024-11-24 20:14:23 +01:00

Translate Splitsies example

This commit is contained in:
Vadim Nifadev 2024-04-24 11:27:46 +03:00
parent 2043112a9d
commit bbb086a521

View File

@ -2745,3 +2745,40 @@ def similar_recursive_func(a):
* Знание этих тонкостей может сэкономить вам часы отладки в долгосрочной перспективе.
---
### ▶ Сплиты (splitsies) *
<!-- example id: ec3168ba-a81a-4482-afb0-691f1cc8d65a --->
```py
>>> 'a'.split()
['a']
# эквивалентно
>>> 'a'.split(' ')
['a']
# но
>>> len(''.split())
0
# не эквивалентно
>>> len(''.split(' '))
1
```
#### 💡 Объяснение
- Может показаться, что разделителем по умолчанию для split является одиночный пробел `' '`, но согласно [документации](https://docs.python.org/3/library/stdtypes.html#str.split)
> если sep не указан или равен `none`, применяется другой алгоритм разбиения: последовательные пробельные символы рассматриваются как один разделитель, и результат не будет содержать пустых строк в начале или конце, если в строке есть ведущие или завершающие пробелы. Следовательно, разбиение пустой строки или строки, состоящей только из пробельных символов, с разделителем none возвращает `[]`.
> если задан sep, то последовательные разделители не группируются вместе и считаются разделителями пустых строк (например, `'1,,2'.split(',')` возвращает `['1', '', '2']`). Разделение пустой строки с указанным разделителем возвращает `['']`.
- Обратите внимание, как обрабатываются ведущие и завершающие пробелы в следующем фрагменте,
```py
>>> ' a '.split(' ')
['', 'a', '']
>>> ' a '.split()
['a']
>>> ''.split(' ')
['']
```
---