Python Portal
55.1K subscribers
1.9K photos
122 videos
45 files
501 links
Всё самое интересное из мира Python

Связь: @devmangx

РКН: https://clck.ru/3GMMF6
Download Telegram
Совет по Python: используйте defaultdict из модуля collections, чтобы автоматически создавать значения для отсутствующих ключей. В отличие от обычного dict, он не выбрасывает KeyError

Пример:

from collections import defaultdict

department_groups = defaultdict(list)

for name, department in employees:
department_groups[department].append(name)


Не нужно проверять наличие ключа. defaultdict(list) автоматически создаёт пустой список при первом обращении 😈

С обычным dict:

department_groups = {}

for name, department in employees:
if department in department_groups:
department_groups[department].append(name)
else:
department_groups[department] = [name]


Нужно вручную проверять наличие ключа и инициализировать список 👀

defaultdict делает код чище, короче и безопаснее при работе с вложенными структурами

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Datacamp открыл бесплатный доступ ко всем своим курсам на неделю

Что можно изучить:

> Python, Spark, анализ данных, data engineering
> Машинное обучение, Power BI и многое другое
> Практические проекты
> Сертификаты, которые можно добавить в резюме

Всё бесплатно на протяжении недели через DataCamp 😡

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Функция filter

Функция filter() используется для фильтрации элементов из итерируемого объекта на основе заданного условия. Она принимает два аргумента: функцию и итерируемый объект. Возвращает итератор, содержащий элементы, которые удовлетворяют условию.

Предположим, у вас есть список чисел, и вы хотите отфильтровать из него только чётные числа. Вы можете использовать функцию filter:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
even_numbers


Результат:

[2, 4, 6, 8]


Обратите внимание, что функция filter использует критерий, заданный функцией lambda, чтобы отфильтровать чётные числа из списка numbers. filter возвращает итератор, поэтому мы используем функцию list(), чтобы извлечь чётные числа в виде списка.

Функция filter() — мощный инструмент для выбора элементов из итерируемых объектов на основе пользовательских условий. Ниже приведены другие способы использования функции filter() в коде:
Фильтрация строк по длине

Если у вас есть список строк, и вы хотите отфильтровать строки определённой длины, вы можете использовать функцию filter(). Предположим, вы хотите получить из списка только те строки, длина которых меньше 5 символов. Вот пример того, как это можно сделать:

words = ["apple", "banana", "kiwi", "grape"]

# Функция, передаваемая в filter
def filter_words(x):
return x if len(x) < 5 else None

short_words = list(filter(filter_words, words))
print(short_words)


Результат:

['kiwi']


👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Структуры данных в Python

Это база, это знать надо 🧠

LIST

> создаются с помощью синтаксиса: myList = []
> имеют методы, такие как: .sort(), .append()
> состоят из упорядоченных групп элементов
> итерируются циклами

ELEMENTS

> находятся по индексам
> могут быть изменены через присваивание: myList[ind] = x
> могут быть типов: int, string, list, …

INDEXES

> используют синтаксис: myList[ind]
> вперёд: от 0 до length-1
> назад: от -1 до -length
> нужны для присваивания

LOOPS

> проходят по списку последовательно
> часто используют идиомы, например:

for elem in myList:
# делаем что-то


TUPLES

> неизменяемы

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Изменение ключей словаря

Ключи словаря являются неизменяемыми. В Python не существует прямого способа изменить ключ словаря. Однако можно использовать метод pop() для изменения или создания нового ключа со значением из существующего ключа.

Допустим, мы хотим заменить ключ "school" на "university" в приведённом ниже словаре. Первый шаг — использовать метод pop() для удаления старого ключа и получения его значения. Второй шаг — создать новый ключ и присвоить ему значение удалённого ключа. Смотрите код ниже:

# Исходный словарь
my_dict = {'school': 'Yale', 'age': 22}

# Шаг 1: Удалить старый ключ и получить его значение
old_value = my_dict.pop('school')

# Шаг 2: Создать новый ключ с нужным именем и присвоить значение
my_dict['university'] = old_value
print(my_dict)


Результат:

{'age': 22, 'university': 'Yale'}


Как видно, ключ "school" был заменён на "university". Учтите, что данный процесс по сути создаёт новый ключ, сохраняя исходное значение 🙂

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашёл топчик для прокачки алгоритмов и структур данных

Курс "A First Course on Data Structures in Python" — интерактивная книга с кодом и объяснениями написанная Дональдом Р. Шихи, профессором компьютерных наук в North Carolina State University

> Всё на Python
> никакой воды
> Всё с примерами и тестами
> Отлично заходит после базового Python

Читаем и прокачиваем мозг бесплатно — тут 📖

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Python включает очень полезную библиотеку difflib. С её помощью можно находить наиболее похожие строки в списке строк.

Вот пример:


words = ["apple", "ape", "appeal", "par", "parade"]


это список строк, среди которых ищем похожие.

difflib.get_close_matches("appel", words)


Ищет строки, похожие на "appel". Вернёт: ['appeal', 'apple', 'ape']
→ По степени схожести.

difflib.get_close_matches("pa", words)


Ищет похожие на "pa". Вернёт: ['par']

difflib.get_close_matches("par", words)


Ищет похожие на "par". Вернёт: ['par', 'parade']
→ parade похожа по началу.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
У CISCO есть 2 курса по Python полностью БЕСПЛАТНО

На английском языке и разработаны для получения официальных сертификатов Python Institute.

Содержат практические проекты и много часов учебного контента: начать 😡

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Python:

В datetime.strptime() используйте "%f" для разбора микросекунд

from datetime import datetime

dt = datetime.strptime('2024-06-18 12:34:56.789123', '%Y-%m-%d %H:%M:%S.%f')


🔸'%Y-%m-%d %H:%M:%S.%f' — формат строки:

> %Y — год (4 цифры)
> %m — месяц
> %d — день
> %H — часы (24ч)
> %M — минуты
> %S — секунды
> %f — микросекунды

Результат:


datetime.datetime(2024, 6, 18, 12, 34, 56, 789123)


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

Это полезно, когда нужно точно работать с временными метками в логах, метриках, или временных рядах 💩

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🌐 WAICORE — хостинг, за который не надо переживать

Устали от лагов, сложных панелей и переплат? Переходите на VPS с AMD Ryzen 9 — быстро, просто, без нервов.

💬 Почему клиенты выбирают нас:
— Цена начинается от 2€
— Скорость канала до 10 Гбит/с
— Поддержка 24/7 — отвечаем быстро и без шаблонов

Приятный бонус: Бесплатный VPN — расширение для браузера в подарок каждому нашему юзеру

VPN | Расширение для браузера

📍 Локации: Германия (Франкфурт), Москва, Нидерланды (уже скоро) — стабильный пинг, DDoS-защита.

🔥 Успейте сегодня
Выбрать сервер | 💬 Наш канал
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Это находка дня: Code2Tutorial

Он позволяет мгновенно превратить любой репозиторий на GitHub в чистый, интерактивный туториал.

Просто вставь ссылку на репо → получи структурированное обучение 😱

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Нашёл годный инструмент для анализа безопасности Python-кода

Это CLI-утилита, которая автоматически сканирует исходники на уязвимости

Анализирует:

– небезопасные импорты
– инъекции
– проблемы с сериализацией
– утечки секретов и т.д.

Подходит для CI/CD пайплайнов и ревью кода.

Интеграция простая, работает быстро —> bandit ❤️

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍Тестовое собеседование на Python-бекендера с разработчиком из Avito во вторник

17 июня(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.

Как это будет:
📂 Даня, разработчик из Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqvB1CC6
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
12 мощных инструментов для ваших ИИ-агентов

Вот краткое описание функций каждого из них

1. FileReadTool

Этот инструмент мгновенно извлекает данные из локальной файловой системы.

2. FileWriterTool

Позволяет агенту создавать или перезаписывать любые файлы.

3. CodeInterpreterTool

Мощный инструмент для выполнения кода на Python 3 в защищённой, изолированной среде

4. ScrapeWebsiteTool

Инструмент, предназначенный для извлечения и чтения содержимого указанного веб-сайта.

5. SerperDevTool

Позволяет агенту выполнять поиск в Google.

6. DirectoryReadTool

Позволяет агенту получать список содержимого папок и метаданные. Полезно для реализации RAG на основе файловой системы.

7. FirecrawlSearchTool

Инструмент, предназначенный для поиска по веб-сайтам и преобразования их содержимого в чистый Markdown или структурированные данные, пригодные для обработки агентами или языковыми моделями (LLM).

8. BrowserbaseLoadTool

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

Этот инструмент позволяет запускать сессии безголового Chrome, которыми может управлять агент.

9. PDFSearchTool

Семантический RAG (извлечение и генерация с подсказками) по PDF-документам.

10. GithubSearchTool

Предоставляет агентам доступ к GitHub и возможность выполнять RAG по исходному коду.

11. TXTSearchTool

Молниеносное встраивание и поиск по текстовым файлам.

12. L2SQLTool

Инструмент Text2SQL, преобразующий естественный язык в SQL-запросы для поиска по структурированным базам данных.

👉 @PythonPortal
Please open Telegram to view this post
VIEW IN TELEGRAM