#python python... PYTHON 🔛 🚀
11 subscribers
914 photos
7 videos
158 files
1.54K links
Download Telegram
🔥🔄 Ускоряем цикл в Python в 33000 раз
python почти всегда позволяет решить одну задачу разными способами, тут-то самое время вспомнить о map!
Многие утверждают, что map более безопасный, быстрый, и вообще - это база. Проверим? Сгенерируем тренировочный список из 100000 отрицательных и положительных чисел.

lst = random.sample(range(-10000000, 10000000), 100000)

🟢 А теперь воспользуемся тремя методами и применим к списку встроенную функцию abs.

- For Loop
lst_pos = []
for i in lst:
lst_pos.append(abs(i))
Время работы: 7.98 ms.

- List Comprehension
lst_pos = [abs(i) for i in lst]
Время работы: 5.07 ms.

- Map
lst_pos = map(abs, lst)
Время работы: 419 ns.

Феноменально, при работе со встроенными функциями, map не просто в лидерах, он в 12000 раз быстрее! Может остальные методы нам и вовсе не нужны?

🔵 Давайте проверим map на невстроенных функциях, например, возведем элементы в квадрат.

- For Loop затратит 23 ms.
- List Comprehension - 20.9 ms.
- Map (используем lambda):
map(lambda x: x**2, lst)
Время работы: 628 ns.

Это ли не чудо? Map быстрее в 33000 раз! Мы вам скажем, по секрету, что map вообще-то не очень жалует использование lambda (это несколько снижает скорость). А если бы мы преобразовали возвращаемый map объект в список, то затраченное время стало бы примерно таким же, как у list comprehension. Но! Map очень любит работать с готовыми функциями, в том числе с определенными пользователем. Поэтому напишем функцию pow2, которая принимает x и возводит его в квадрат - x * x.

- List Comprehension:
[pow2(x) for x in lst]
Время: 8.6 ms.

- Map
map(pow2, lst)
Время: 401 ns.

Никого уже, наверное, не удивляет, map опять быстрее, в 20000 раз. Причем обратите внимание, ускорилась работа list comprehension - 8.6 ms против 20.9 ms, хотя делали мы одно и то же, просто разными способами. Берем на заметку!

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

- For Loop отработает за 26.3 ms.
- List Comprehension за 25.8 ms.
- Map, увы, не позволит сделать нам ничего подобного. Она может невероятно быстро применить функцию к каждому элементу массива, но удалить элемент - не может. Для таких случаев есть filter:
filter(lambda x: x**2 % 8 == 0, lst)
И время: 542 ns.

Ну что же, можно забывать про list comprehension и циклы, зачем они вообще нужны, когда есть map и filter, которые всегда в тысячи раз быстрее. Да?

Нет! Наверняка, знакомые с функцией map, уже хотят подловить нас на обмане. А именно, map никогда не возвращает список, только map object, и это именно то, что отличает его от “конкурентов” и позволяет map оставаться впереди.

Да, ни в одном из наших примеров, мы не формировали из возвращаемого map object - список. Это существенно замедлило бы работу map, но даже если сделали бы - map все равно остался бы быстрее приблизительно в 1,5 - 2 раза (опять же, кроме случаев с использованием lambda). Но если вам так же, не нужны все вычисляемые значения сразу - выбирайте map, и тоже будете быстрее в 33000 раз!

#python
🎓💻 Лучшие известные программисты всех времен

0️⃣ Изобретатель языка программирования Python, Ван Россум — один из известных программистов, оказавших неизгладимое влияние на мир программирования. Ван Россум вырос в Нидерландах, и там же он получил образование. Он получил степень магистра математики и информатики в Амстердамском университете. Не только в Python, Ван Россум также внес свой вклад в развитие языка ABC. В 1989 году он разработал Python, когда искал хобби-проект, чтобы провести выходные. Так работают гении?

1️⃣ Финно-американский программист Линус Торвальдс - создатель ядра Linux и системы управления версиями Git. В 1994 году Торвальдс презентовал перед студентами Хельсинкского университета Linux 1.0 (её исходники лежат на kernel.org). Этот был первый стабильный релиз, пригодный для коммерческого использования. Предыдущие версии OC с завидной регулярностью выдавали баги, но теперь всё изменилось.
В 2014 году самый популярный дистрибутив Ubuntu отчитался, что его используют 22 миллиона пользователей. Linux стала самой популярной не только в коммерческой среде, но и в сфере высших достижений. Все самые мощные машины из рейтинга топ-500 суперкомпьютеров работают на Linux.
Сегодня всего устройств на Linux насчитывается от 3 до 3,5 миллиардов. Так что дело Торвальдса точно можно назвать успешным.

#python
🦎🤖 Lambda – функции

Сегодня пробуем на вкус еще одну фишку питона. Показываем, как ее использовать и с чем сочетать, чтобы стало еще вкуснее.
#python
Python_и_DevOps_Ключ_к_автоматизации_Linux_2022_Ной_Гифт,_Кеннеди.pdf
8.1 MB
📙🦖🐧 Python и DevOps: Ключ к автоматизации Linux
Авторы: Ной Гифт, Кеннеди Берман, Альфредо Деза, Григ Георгиу. 2022

За последнее десятилетие технологии сильно изменились. Данные стали хитом, облака — вездесущими, и всем организациям понадобилась автоматизация. В ходе таких преобразований Python оказался одним из самых популярных языков программирования.

Это практическое руководство научит вас использовать Python для повседневных задач администрирования Linux с помощью наиболее удобных утилит DevOps, включая Docker, Kubernetes и Terraform.

#python
📃3️⃣ принципа написания чистого кода на Python

Порядок в коде начинается не с кода

Даже опытные программисты с трудом пишут чистый код, и это часто ощущается как постоянная битва за то, чтобы все было аккуратно и упорядочено. В статье на примерах показываем, как писать чистый и осмысленный код и как правильно оформлять документацию.

👉 Читать статью

#python
🔖📌 Query JSON

JMESpath – это язык запросов для JSON, который позволяет получать необходимые данные из документа или словаря JSON.

Библиотека доступна как для Python, так и для других ЯП, что расширяет ее возможности.
#python
⬇️📑 importlib

Библиотека появилась в Python 3.1 и реализует функцию __import__().
importlib применяется не так часто и нужен только при работе с модулями.

#python
🔖📑
typing import TypedDict

Класс позволяет задать подсказки для словаря. Таким образом мы получаем предупреждения, если словарь не соответствует структуре и подсказки для ключей.

📌 PEP 589

#python
🔖📌 Шпаргалка по алгоритмам (big O)

#python
♒️🔀 Многопоточность и Многопроцессорность

В данном курсе мы рассмотрим модули Threading, Multiprocessing и научимся писать программы на их основе.

📺 Просмотр

#python
📜🧧Подготовка к Python сертификации PCAP

В этой статье автор расскажет, как проходит его путь по подготовке к сертификации PCAP. Поделится своими мыслями на тему того, кому это может быть полезно.

Каково проходить сертификацию спустя 3 года разработки на языке. Какие материалы использовать и на что обращать внимание. Он рассчитывает, что этот пост будет претворять статью о том, как он успешно сдал этот тест и что из него извлёк.

👆🏻 Читать

#python
💻🔆 Как легко и быстро создать веб-приложение на базе МО с помощью Python

💬 В этой статье мы с нуля развернем модель линейной регрессии с помощью Flask, фреймворка Python для разработки веб-приложений

📌 Независимо от того, сколько моделей вы создали, оффлайн их смогут увидеть лишь несколько человек. Поэтому необходимо их развертывать, чтобы любой смог поработать с ними посредством UI.

👆🏻Читать статью
#python
🔠 Функция shorten()

Функция shorten() модуля textwrap усекает заданный текст, чтобы он поместился в заданную ширину width.

Сначала все пробелы заменяются одиночными пробелами. Если результат соответствует ширине, он возвращается. В противном случае с конца отбрасывается слова, чтобы оставшийся текст плюс заполнитель placeholder (по умолчанию [...]) поместились в указанную ширину width.

#python
💻🔆 Фреймворк Flask

Один из самых популярных фреймворков для разработки бэкенда. Предназначен для быстрого лёгкого старта работы в создании как простых, так и сложных приложений.

Для первого рабочего приложения достаточно шести строк. В начале импортируем модуль, установленный как обычно при помощи pip, затем создаём объект-приложение, далее с помощью декоратора указываем путь в адресной строке и определяем функцию, которая возвращает отображаемый текст.
После запуска приложения результат можно увидеть в браузере по адресу http://localhost:5000/.

#python
Forwarded from Zen of Python
Запуск Python внутри ChatGPT

Запуск Python внутри ChatGPT показывает некоторые удивительные возможности, которыми обладает эта нейросеть, чтобы понимать код Python и оценивать его для вас.

Посмотрите, как ChatGPT распознает задачи для Python, а затем решает их ровно также, как это сделал бы Python, даже предлагая вам готовый код или результат его выполнения:

https://mathspp.com/blog/running-python-inside-chatgpt

#chatgpt