This media is not supported in your browser
VIEW IN TELEGRAM
Полезный трюк: быстро парсим HTML прямо из строки с помощью selectolax — лёгкой и очень быстрой библиотеки на C, в разы быстрее BeautifulSoup.
Установка:
pip install selectolax
Пример с кодом:
from selectolax.parser import HTMLParser
html = """
<html><body> <h1>Hello</h1> <p class='msg'>World</p> </body></html> """
tree = HTMLParser(html)
print(tree.css_first("h1").text()) # Hello
print(tree.css_first("p.msg").text()) # World
https://www.youtube.com/shorts/CSYJDmt4ztg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5🔥3😱2
Что дадут эти вызовы функции в консоли?
Anonymous Quiz
13%
0 и 0
10%
Zero Division Error и Zero Division Error
59%
0 и Zero Division Error
7%
Zero Division Error и 0
10%
Посмотреть ответ
👍6❤3
⚡️ DINOv3 - новое семейство фундаментальных моделей для компьютерного зрения, обученных методом SSL. Ключевой особенностью стал прорыв в обучении без размеченных вручную данных: система, натренированная на 1.7 миллиардах изображений, достигает SOTA-производительности.
Backbone DINOv3 превосходит специализированные модели в широком спектре задач, от классификации до сегментации, без необходимости дополнительного дообучения. Модели разных размеров, включая флагманскую версию на 7 миллиардов параметров, уже доступны на Hugging Face под коммерческой лицензией.
github.com
Backbone DINOv3 превосходит специализированные модели в широком спектре задач, от классификации до сегментации, без необходимости дополнительного дообучения. Модели разных размеров, включая флагманскую версию на 7 миллиардов параметров, уже доступны на Hugging Face под коммерческой лицензией.
github.com
❤4👍2
🐍 Полезный совет по Python: используйте
Многие новички пишут так:
Код рабочий, но неэффективный: при каждой конкатенации создаётся новая строка, что сильно замедляет работу на больших объёмах данных.
🚀 Правильный способ — использовать " ".join():
💡 Преимущества:
- Быстрее и эффективнее на больших списках
- Код чище и короче
-Можно легко задавать разделитель (пробел, запятая, \n)
📊 Пример:
Вывод:
📌 Итог
Используйте "".join() для объединения строк из списка — это питонично, быстро и удобно.
"".join()
вместо конкатенации строк в цикле Многие новички пишут так:
words = ["Python", "очень", "крут"]
result = ""
for w in words:
result += w + " "
print(result)
Код рабочий, но неэффективный: при каждой конкатенации создаётся новая строка, что сильно замедляет работу на больших объёмах данных.
🚀 Правильный способ — использовать " ".join():
words = ["Python", "очень", "крут"]
result = " ".join(words)
print(result)
💡 Преимущества:
- Быстрее и эффективнее на больших списках
- Код чище и короче
-Можно легко задавать разделитель (пробел, запятая, \n)
📊 Пример:
lines = ["строка 1", "строка 2", "строка 3"]
text = "\n".join(lines)
print(text)
Вывод:
строка 1
строка 2
строка 3
📌 Итог
Используйте "".join() для объединения строк из списка — это питонично, быстро и удобно.
🔥7❤4👍1
Forwarded from Machinelearning
🚀 Tencent Hunyuan только что выкатили AutoCodeBench — мощный open-source инструмент для проверки способностей ИИ в генерации кода.
Что внутри?
🔹 AutoCodeGen — генерация многоязычных датасетов кода без ручной разметки
🔹 AutoCodeBench — почти 4 000 сложных задач на 20 языках программирования (версии Full / Lite / Complete)
🔹 MultiLanguageSandbox — песочница для работы с поддержкой 30+ языков
C AutoCodeBench можно быстро тестировать LLM в кодинге, сравнивать модели и даже создавать свои бенчмарки.
🟠 Статья: arxiv.org/abs/2508.09101
🟠 Код: github.com/Tencent-Hunyuan/AutoCodeBenchmark
🟠 Датасет: huggingface.co/datasets/tencent/AutoCodeBenchmark
@ai_machinelearning_big_data
#AutoCodeBench #AI #coding
Что внутри?
🔹 AutoCodeGen — генерация многоязычных датасетов кода без ручной разметки
🔹 AutoCodeBench — почти 4 000 сложных задач на 20 языках программирования (версии Full / Lite / Complete)
🔹 MultiLanguageSandbox — песочница для работы с поддержкой 30+ языков
C AutoCodeBench можно быстро тестировать LLM в кодинге, сравнивать модели и даже создавать свои бенчмарки.
@ai_machinelearning_big_data
#AutoCodeBench #AI #coding
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3
📄🚀 Удобный просмотр кода с rendergit
С помощью rendergit вы можете легко преобразовать любой репозиторий GitHub в статическую HTML-страницу с подсветкой синтаксиса и навигацией. Идеально подходит для быстрого просмотра, анализа кода и удобного поиска.
🚀Основные моменты:
- Два режима просмотра: Человеческий и LLM
- Подсветка синтаксиса и рендеринг Markdown
- Умное фильтрование больших файлов
- Адаптивный дизайн для мобильных устройств
- Удобная навигация по файлам
📌 GitHub: https://github.com/karpathy/rendergit
#python
С помощью rendergit вы можете легко преобразовать любой репозиторий GitHub в статическую HTML-страницу с подсветкой синтаксиса и навигацией. Идеально подходит для быстрого просмотра, анализа кода и удобного поиска.
🚀Основные моменты:
- Два режима просмотра: Человеческий и LLM
- Подсветка синтаксиса и рендеринг Markdown
- Умное фильтрование больших файлов
- Адаптивный дизайн для мобильных устройств
- Удобная навигация по файлам
📌 GitHub: https://github.com/karpathy/rendergit
#python
👍5❤1
🐍 Полезные фишки парсинга в Python
1️⃣ Парсинг JSON без лишних усилий
2️⃣ HTML/XML-парсинг с BeautifulSoup
3️⃣ Парсинг аргументов командной строки с argparse
4️⃣ Быстрый CSV-парсинг
5️⃣ Регулярки для гибкого текста
🔥 Эти трюки помогают парсить JSON, HTML, CSV, аргументы CLI и даже “грязный” текст.
Подойдут как для скриптов, так и для продакшн-кода.
👉 Сохрани, чтобы не забыть!
1️⃣ Парсинг JSON без лишних усилий
import json
data = '{"name": "Alice", "age": 25}'
parsed = json.loads(data)
print(parsed["name"]) # Alice
2️⃣ HTML/XML-парсинг с BeautifulSoup
from bs4 import BeautifulSoup
html = "<h1>Hello <b>Python</b></h1>"
soup = BeautifulSoup(html, "html.parser")
print(soup.h1.text) # Hello Python
3️⃣ Парсинг аргументов командной строки с argparse
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--name")
args = parser.parse_args()
print(f"Hello, {args.name}")
4️⃣ Быстрый CSV-парсинг
import csv
with open("data.csv") as f:
reader = csv.DictReader(f)
for row in reader:
print(row["username"], row["score"])
5️⃣ Регулярки для гибкого текста
import re
text = "Email: test@example.com"
match = re.search(r"\w+@\w+\.\w+", text)
print(match.group()) # test@example.com
🔥 Эти трюки помогают парсить JSON, HTML, CSV, аргументы CLI и даже “грязный” текст.
Подойдут как для скриптов, так и для продакшн-кода.
👉 Сохрани, чтобы не забыть!
👍6❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Совет по Python: неожиданное поведение с изменяемыми аргументами по умолчанию
Если в функции задать аргумент по умолчанию как
Из-за этого все вызовы будут делить один и тот же объект, что часто приводит к багам.
Правильный способ — использовать `None` и создавать новый объект внутри функции.
Используйте этот приём, чтобы не попасться на скрытые баги с аргументами по умолчанию.
Если в функции задать аргумент по умолчанию как
list
или dict
, то этот объект создаётся один раз — при определении функции. Из-за этого все вызовы будут делить один и тот же объект, что часто приводит к багам.
Правильный способ — использовать `None` и создавать новый объект внутри функции.
def bad_append(x, data=[]):
data.append(x)
return data
print(bad_append(1)) # [1]
print(bad_append(2)) # [1, 2] <-- неожиданно!
def good_append(x, data=None):
if data is None:
data = []
data.append(x)
return data
print(good_append(1)) # [1]
print(good_append(2)) # [2]
Используйте этот приём, чтобы не попасться на скрытые баги с аргументами по умолчанию.
👍6❤3🔥2