Python - как работает метод split? - PullRequest
1 голос
/ 31 июля 2011

Кто-нибудь знает, как работает функция split в python? Я имею в виду, читает ли она строку char с помощью char и затем оценивает код или у нее есть другой способ работы? Я прочитал документ, но он не упоминает.

EDIT

Для тех, кому любопытно, как мне, просто отметьте здесь . Это должно быть на 147-й строке, как сказал Крис.

Ответы [ 2 ]

3 голосов
/ 31 июля 2011

Если говорить о 3.2, есть несколько реализаций split().Прежде всего, split() без аргументов имеет собственную реализацию, так как имеет немного другую семантику, чем другие разбиения.Когда задана разделенная строка, возможны две реализации: одна для разделителя одного символа и одна для других строк.Односимвольная реализация просто просматривает строку и добавляет куски в список.Для более длинных строк алгоритм тот же, но поиск выполняется с фильтрами Блума .

3 голосов
/ 31 июля 2011

Если вы посмотрите исходный код Python (я использовал 2.7.1, но я сомневаюсь, что местоположение изменилось в серии 3.x), полную реализацию можно найти по адресу $src_dir/Objects/stringlib/split.h.Имя функции stringlib_split и в 2.7.1 можно найти в строке 147.

...