Как стать автором
Обновить
82
0
Роман @leron

Пользователь

Отправить сообщение

Сортировки: key vs cmp

Время на прочтение3 мин
Количество просмотров45K
При сортирование в Python 2 есть как минимум два способа это сортирование «настроить»: это параметры key и cmp. Первый был добавлен только в Python 2.4, а второй был удален в Python 3.0. Эти факты как-бы наводят на мысль что key действительно лучше. Кто с этим не согласен или не уверен — прошу под кат.
Читать дальше →
Всего голосов 35: ↑30 и ↓5+25
Комментарии15

Юникод для чайников

Время на прочтение8 мин
Количество просмотров327K
logo
Сам я не очень люблю заголовки вроде «Покемоны в собственном соку для чайников\кастрюль\сковородок», но это кажется именно тот случай — говорить будем о базовых вещах, работа с которыми довольно часто приводить к купе набитых шишек и уйме потерянного времени вокруг вопроса — «Почему же оно не работает?». Если вы до сих пор боитесь и\или не понимаете Юникода — прошу под кат.

Читать дальше →
Всего голосов 121: ↑115 и ↓6+109
Комментарии53

Поиск в строке. Реализация в CPython

Время на прочтение4 мин
Количество просмотров8.3K
Довольно давно на одной из презентаций выпускников одной из так называемых ИТ-академий докладчика спросили о деталях реализации поиска подстроки в строке толи в Java, толи в .Net. Выпускник конечно не смог ничего вразумительного ответить, а я отложил вопрос в и без того длинный todo-лист.

Прошло время, Python стал для меня актуальней enterprise платформ, так что вашему вниманию разбор алгоритма поиска подстроки в Python.
Читать дальше →
Всего голосов 55: ↑52 и ↓3+49
Комментарии10

Catastrophic backtracking в регулярных выражениях

Время на прочтение2 мин
Количество просмотров8.2K
Можно ли простой и вроде невинной регуляркой убить систему? Да, можно.

Например:

>>> r = '(a+)*b'

Просто — да. Невинно — вроде да. Конечно неумно, потому что скобки и звездочка лишние, но должно работать. Попробуем:

>>> re.findall('(a+)*b', 'aaaaaab')
['aaaaaa']

Круто, работает, пошли пить пиво.

А нет…
Читать дальше →
Всего голосов 83: ↑76 и ↓7+69
Комментарии23

Кластеризация. Алгоритм а-квазиэквивалентности

Время на прочтение3 мин
Количество просмотров7.5K
Странно, но статей о извлечение знаний (data mining) и кластеризации (как одном из основных инструментом, которие используются для извлечения знаний) на Хабре совсем немного. А если говорить говорить о конкретных алгоритмах, то рассматривались только hard/soft k-means.

В статье ниже описывается теория и реализация (Python + matplotlib) не очень известного, но крайне интересного иерархического метода который можно назвать алгоритмом а-квазиэквивалентности.

Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии18

Python-неизвестный

Время на прочтение4 мин
Количество просмотров27K
На Хабре уже есть несколько статей\переводов, в которых рассказывается о неизвестных фичах\тонкостях\возможностях Пайтона. Я буду пытаться не повторять их, а дополнять, но если уж так случилось, что вы это уже где-то видели — не огорчайтесь. Я уверен, что найдется что-то интересное и для вас.
Читать дальше →
Всего голосов 144: ↑140 и ↓4+136
Комментарии51

Еще немного о дескрипторах в Python

Время на прочтение3 мин
Количество просмотров19K
Не так давно на Хабре уже был перевод статьи Раймонда Хеттингера Руководство к дескрипторам. В этой статье я постараюсь рассмотреть вопросы, которые возникли у меня после прочтения. Будет немного примеров кода, собственно вопросов и ответов к ним. Для понимания того, о чем речь, вам нужно знать, что такое дескрипторы и зачем они.

Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии29

Информация

В рейтинге
Не участвует
Откуда
Львов, Львовская обл., Украина
Зарегистрирован
Активность