Python/ django
59.9K subscribers
2.44K photos
189 videos
48 files
3.19K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Python иногда может выглядеть как тёмная магия.

Вот однострочный quicksort через lambda:


q = lambda x: x and q([i for i in x[1:] if i <= x[0]]) + [x[0]] + q([i for i in x[1:] if i > x[0]])


Что тут происходит:

* берём первый элемент как pivot
* всё, что меньше или равно ему, рекурсивно сортируем слева
* сам pivot ставим в центр
* всё, что больше, рекурсивно сортируем справа
* если список пустой, возвращается пустой список

Работает красиво, но в продакшен так писать не надо. Это скорее пример того, насколько гибким может быть Python, чем нормальный стиль кода.

Минусы очевидные: плохая читаемость, рекурсия, лишние списки на каждом шаге и риск упереться в лимит рекурсии.

Но как демонстрация идеи quicksort в одну строку — выглядит эффектно.
👍4🔥4😱1