Python Portal
Всё самое интересное из мира Python Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3GMMF6
Mostrar más📈 Análisis del canal de Telegram Python Portal
El canal Python Portal (@pythonportal) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 52 440 suscriptores, ocupando la posición 2 547 en la categoría Tecnologías y Aplicaciones y el puesto 11 911 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 52 440 suscriptores.
Según los últimos datos del 10 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -783, y en las últimas 24 horas de -20, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 9.32%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 5.78% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 4 892 visualizaciones. En el primer día suele acumular 3 033 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 25.
- Intereses temáticos: El contenido se centra en temas clave como строка, none, true, модуль, peter.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Всё самое интересное из мира Python
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3GMMF6”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 11 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
items = [1, 2, 2, 3, 4]
for item in items:
if item == 2:
items.remove(item)
print(items)
# Output: [1, 2, 3, 4]
Здесь мы используем remove(), чтобы удалить все двойки из списка. Но если посмотреть на вывод, одна 2 все равно осталась. Почему так происходит: когда ты удаляешь элемент из списка, все элементы справа сдвигаются влево. А цикл продолжает идти дальше. В итоге происходит вот что: находится и удаляется первая 2. Вторая 2 сдвигается на ее место. Цикл переходит к следующему индексу и пропускает эту 2.
Лучший способ сделать это: итерироваться по копии:
for item in items[:]:
if item == 2:
items.remove(item)
print(items)
# Output: [1, 3, 4]
Когда ты проходишь по копии (поверхностной копии), индексы в исходной копии не меняются.
Еще лучше использовать list comprehension:
items = [x for x in items if x != 2]
Никогда, ни при каких условиях не модифицируй список (или любую коллекцию) прямо во время итерации по нему. Итератор плохо переносит структурные изменения: он может пропускать элементы, обрабатывать один и тот же элемент дважды или (в некоторых случаях, например со словарями) выбрасывать RuntimeError. Это плохая практика.
👉 @PythonPortalprint по горизонтали
Когда вы проходите циклом по итерируемому объекту, функция print печатает каждый элемент с новой строки. Это потому, что у print есть параметр end. По умолчанию значение этого параметра содержит символ перевода строки (end="\n"). Чтобы печатать в одну строку, нужно убрать перевод строки и заменить его на пустую строку (end="").
В примере ниже обратите внимание на пробел между кавычками (" "): он нужен, чтобы числа печатались с пробелами между ними. Если убрать пробел (""), числа выведутся слитно, вот так: 1367. Вот код, который это показывает:
In [1]: my_list = [1, 3, 6, 7]
for number in my_list:
print(number, end=" ")
// 1 3 6 7
У print есть еще один параметр: sep. Мы используем sep, чтобы задать, чем разделять выводимые значения. Ниже в качестве разделителя используется символ /:
In [2]: print('12', '12', '1990', sep='/')
// 12/12/1990
👉 @PythonPortal= NULL никогда не бывает true. Используй IS NULL / IS NOT NULL (трехзначная логика: true, false, unknown).
2. NOT IN (...) + один NULL в списке может вернуть ноль строк. Чаще безопаснее NOT EXISTS.
3. LEFT JOIN + фильтр в WHERE превращается в INNER JOIN. Фильтры по джойну клади в ON.
4. COUNT(col) пропускает NULL, а COUNT(*) нет. Из-за этого метрики потом “магически” не сходятся.
5. NULL ломает конкатенацию и сравнения. Используй COALESCE осознанно.
👉 @PythonPortalfrozendict будет “safe by design”, потому что он предотвращает любые непреднамеренные изменения. Это полезно не только для стандартной библиотеки CPython, но и для сторонних мейнтейнеров: можно опираться на надежный неизменяемый тип словаря.
Зачем это вообще нужно:
▪️Хочешь использовать мапу как ключ в другом dict или засунуть в set? Обычный dict нельзя, а frozendict можно (если значения тоже хэшируемые).
▪️ @functools.lru_cache() и аргументы-словари: с dict будет сложно, с frozendict нормально.
▪️Дефолты в аргументах функций: вместо “мутабельного дефолта” можно давать frozendict(...) и не ловить сюрпризы.
Как выглядит по API:
▪️Конструктор “как у dict”: frozendict(), frozendict(**kwargs), frozendict(mapping) или iterable пар, плюс можно смешивать с **kwargs.
▪️Порядок вставки сохраняется (как в обычном dict).
▪️Хэш не зависит от порядка элементов (логика через frozenset(items)), и сравнение тоже по содержимому, а не по порядку.
▪️Есть объединение через | и “обновление” |= (но |= не мутирует объект, а создает новый).
▪️.copy() в CPython по сути возвращает тот же объект (shallow), а если надо глубоко, то copy.deepcopy().
Важный момент: frozendict НЕ наследуется от dict. Это специально, чтобы нельзя было обойти “неизменяемость” вызовом dict.__setitem__ и подобных трюков.
И бонус для stdlib: авторы наметили места, где можно заменить константные/публичные мапы на frozendict (в том числе там, где сейчас MappingProxyType).
👉 @PythonPortalabliteration: находят “направление отказа” внутри весов модели, а затем математически СТИРАЮТ его.
Проблема? Делать это руками нормально было медленно, нестабильно по результатам и требовало глубоких знаний в ML.
HERETIC автоматизирует ВЕСЬ процесс.
Ты даешь ему имя модели, он прогоняет вредные и безвредные промпты, мапит, где именно “живёт отказ” в residual stream, а потом через байесовскую оптимизацию подбирает лучшие параметры “удаления”.
Старые инструменты использовали ФИКСИРОВАННЫЙ вес абляции для всех слоев. HERETIC использует гибкое ядро весов, типа ручки громкости, которая на разной глубине сети может усиливаться или ослабляться.
Плюс он обрабатывает MLP и attention heads ОТДЕЛЬНО. MLP более хрупкие, поэтому для них операция более “щадящая”.
Один тестер прогнал heretic-модель через приватный IQ-тест для LLM, где даже GPT-4 спотыкается.
Идеальный результат.
Другой назвал heretic-вариант gpt-oss 20b ЛУЧШЕЙ “uncensored” моделью, которую он пробовал.
Мы прошли путь от “пожалуйста, джейлбрейкни мою модель 500-словным промптом, который ломается со следующим апдейтом” к “математически удалить цепь отказа за 45 минут, и это НАВСЕГДА”.
Это не “патчится обратно”, это НЕ джейлбрейк: веса ИЗМЕНЕНЫ навсегда.
И поскольку HERETIC оптимизирует минимальную потерю интеллекта, ты не меняешь capability на свободу… ты получаешь И ТО, И ДРУГОЕ
“uncensored”-версия больше не “тупой кузен”, это та же модель, только без намордника.
👉 @PythonPortal
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
