uz
Feedback
Python Portal

Python Portal

Kanalga Telegram’da o‘tish

Всё самое интересное из мира Python Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3GMMF6

Ko'proq ko'rsatish

📈 Telegram kanali Python Portal analitikasi

Python Portal (@pythonportal) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 52 460 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 2 547-o'rinni va Rossiya mintaqasida 11 911-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 52 460 obunachiga ega bo‘ldi.

10 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -783 ga, so‘nggi 24 soatda esa -20 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 9.32% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 5.78% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 4 892 marta ko‘riladi; birinchi sutkada odatda 3 033 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 25 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent строка, none, true, модуль, peter kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Всё самое интересное из мира Python Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3GMMF6

Yuqori yangilanish chastotasi (oxirgi ma’lumot 11 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

52 460
Obunachilar
-2024 soatlar
-1877 kunlar
-78330 kunlar
Postlar arxiv
Немного базы Python. День 8 - Сделать вложенный список плоским Я покажу вам три (3) способа, как можно развернуть двумерный список. В первом методе используется цикл for, во втором используется модуль itertools, а в третьем используется списковое включение (list comprehension). ⚙️ С помощью цикла for: Для этого метода мы используем вложенный цикл for. Внешний цикл проходит по внутренним спискам, а внутренний цикл обращается к элементам во внутренних списках.
# In [19]:
list1 = [[1, 2, 3],[4, 5, 6]]

newlist = []
for list2 in list1:
    for j in list2:
        newlist.append(j)

print(newlist)
[1, 2, 3, 4, 5, 6]
⚙️ С помощью модуля itertools: Функцию itertools.chain.from_iterable() из модуля itertools можно использовать, чтобы развернуть вложенный список. Этот метод может не подойти для списков с глубокой вложенностью.
# In [20]:
import itertools

list1 = [[1, 2, 3],[4, 5, 6]]

flat_list = list(itertools.chain.from_iterable(list1))
print(flat_list)
[1, 2, 3, 4, 5, 6]
Вы можете увидеть, что вложенный цикл был развернут. ⚙️ С помощью list comprehension Если вы не хотите импортировать itertools или писать обычный цикл for, можно просто использовать list comprehension.
# In [21]:
list1 = [[1, 2, 3], [4, 5, 6]]

flat_list = [i for j in list1 for i in j]
print(flat_list)
[1, 2, 3, 4, 5, 6]
List comprehension хорошо подходит для умеренно вложенных списков. Для глубоко вложенных списков он не подходит, так как код становится хуже читаемым. ⚙️ С помощью генераторной функции Можно создать генераторную функцию, которая делает yield элементов из вложенного списка, а затем преобразовать генератор в список.
# In [22]:
def flatten_generator(nested_list):
    for sublist in nested_list:
        for item in sublist:
            yield item

list1 = [[1, 2, 3], [4, 5, 6]]

flat_list = list(flatten_generator(list1))
flat_list
Out[22]: [1, 2, 3, 4, 5, 6]
Метод с генератором подходит для разворачивания больших или глубоко вложенных списков. Это потому, что генераторы экономно расходуют память. 👉 @PythonPortal

Ну кто опять накатил питона на принтер ?? 👉 @PythonPortal

Шпаргалка по библиотеке Pandas 👉 @PythonPortal
+1
Шпаргалка по библиотеке Pandas 👉 @PythonPortal

На Stepik запустили курс «От новичка к уверенности в коде на Python» Курс создан для новичков, которым важно не заучить коман
На Stepik запустили курс «От новичка к уверенности в коде на Python» Курс создан для новичков, которым важно не заучить команды, а понять логику. Наглядные схемы и визуальные разборы показывают, что происходит внутри программы и как она работает Много практики, понятные объяснения решений не дадут застрять на теории. Материал предлагает вам не иллюзию знаний, а ощущение контроля: вы ясно видите как из нескольких строк кода рождается работающая программа Что внутри: ✅переменные и типы данных ✅условия и логика программ ✅циклы и рекурсия ✅функции и работа с вводом данных ✅списки, словари и множества ✅базовое ООП ✅работа с библиотеками Python ✅десятки задач и упражнений Эти знания фундамент для написания простых ботов и автоматизации задач Скидка 25%, действует 48 часов 🔗Пройти курс на Stepik

Немного базы Python. День 7. Подсчет количества вхождений элемента Если тебе нужно узнать, сколько раз элемент встречается в итерируемой коллекции, можно использовать класс Counter из модуля collections. Counter() вернет словарь с тем, сколько раз каждый элемент встречается в последовательности. Допустим, мы хотим узнать, сколько раз имя Peter встречается в следующем списке. Можно использовать Counter(). См. ниже:
from collections import Counter

list1 = ['John', 'Kelly', 'Peter', 'Moses', 'Peter']

count_peter = Counter(list1).get("Peter")

print(f'The name "Peter" appears in the list '
      f'{count_peter} times.')
Вывод:
The name "Peter" appears in the list 2 times.
Еще один способ сделать это — обычный цикл for. Мы заводим переменную-счетчик и увеличиваем ее на 1 каждый раз, когда находим имя Peter в последовательности. Это наивный способ. См. ниже:
list1 = ['John', 'Kelly', 'Peter', 'Moses', 'Peter']
# Create a count variable
count = 0
for name in list1:
    if name == 'Peter':
        count +=1
print(f'The name "Peter" appears in the list'
      f' {count} times.')
Вывод:
The name "Peter" appears in the list 2 times.
Списки и другие итерируемые структуры данных в Python имеют встроенный метод count(), который позволяет посчитать количество вхождений конкретного элемента. Мы можем использовать count(), чтобы посчитать, сколько раз Peter встречается в списке.
list1 = ['John', 'Kelly', 'Peter', 'Moses', 'Peter']

print(f'The name "Peter" appears in the list '
      f'{list1.count("Peter")} times.')
Вывод:
The name "Peter" appears in the list 2 times.
👉 @PythonPortal

Алгоритмы оптимизации от MIT: https://drive.google.com/file/d/1Rx7MAekKZbyNVc5B2MNfR0HXXIEJCksp/view 👉 @PythonPortal
Алгоритмы оптимизации от MIT: https://drive.google.com/file/d/1Rx7MAekKZbyNVc5B2MNfR0HXXIEJCksp/view 👉 @PythonPortal

giveHimABreak 👉 @PythonPortal
giveHimABreak 👉 @PythonPortal

Немного базы Python. День 6 - Обмен значениями переменных В Python можно менять местами переменные после того, как им уже присвоены объекты. Ниже мы сначала присваиваем 20 переменной x и 30 переменной y, а потом меняем их местами: x становится 30, а y становится 20. Этот способ называется упаковкой и распаковкой кортежа (tuple packing/unpacking).
x, y = 20, 30
x, y = y, x

print('x is: ', x)
print('y is: ', y)
x is 30
y is 20
Также можно использовать оператор XOR (exclusive or), чтобы поменять переменные местами. Это трехшаговый метод. В примере ниже мы меняем местами значения x и y.
x = 20
y = 30

# шаг первый
x ^= y
# шаг второй
y ^= x
# шаг третий
x ^= y

print(f'x is: {x}')
print(f'y is: {y}')
x is: 30
y is: 20
Также можно использовать арифметические операции (сложение и вычитание), чтобы поменять переменные местами без временной переменной. Однако этот метод рекомендуется для обмена переменных числовых типов данных. Вот пример:
# Используем арифметические операции
x = 5
y = 10

x = x + y
y = x - y
x = x - y

print("After swapping:")
print("x =", x)
print("y =", y)
After swapping:
x = 10
y = 5
В результате этих арифметических операций значения x и y были фактически поменяны местами. После обмена x содержит исходное значение y (10), а y содержит исходное значение x (5). Этот способ обмена переменных без временной переменной основан на том, что когда вы прибавляете или вычитаете значение одной переменной из другой, можно эффективно обменять их значения без необходимости в дополнительном хранилище. 👉 @PythonPortal

Перестаньте использовать if obj == None, используйте if obj is None В Python, когда вы пишете: obj == None вы не проверяете н
Перестаньте использовать if obj == None, используйте if obj is None В Python, когда вы пишете:
obj == None
вы не проверяете напрямую, является ли obj значением None. Вместо этого вы спрашиваете, равен ли объект None. Да, во многих случаях результат будет таким же, как у кода:
obj is None
Но поведение у этих двух вариантов разное, и эта разница важна. Когда вы используете:
obj == None
Python вызывает метод __eq__ у объекта. То есть сам объект решает, что значит "равен None". А этот метод можно переопределить. Если obj это экземпляр класса, в котором __eq__ реализован так, что при сравнении с None возвращается True (даже если объект на самом деле не None), тогда obj == None может ошибочно дать True. Пример:
class Weird:
    def __eq__(self, other):
        return True  # Всегда утверждает, что равен

obj = Weird()

print(obj == None)  # True
print(obj is None)  # False
Здесь видно, что obj == None возвращает True из-за кастомного поведения оператора __eq__ в классе. Из этого следует, что при использовании obj == None результат не всегда предсказуем. С другой стороны, когда вы пишете:
obj is None
вы используете оператор is, который нельзя переопределить. Это значит, что результат всегда будет одинаковым и предсказуемым. Оператор is проверяет идентичность объектов, то есть указывают ли две ссылки на один и тот же объект. Поскольку None это singleton (единственный экземпляр), obj is None это правильный и самый эффективный способ такой проверки. ❤️ Поэтому всегда рекомендуется, и это best practice, использовать obj is None вместо obj == None ради предсказуемости и эффективности. 👉 @PythonPortal

Главное захотеть 🧠 👉 @PythonPortal
Главное захотеть 🧠 👉 @PythonPortal

Немного базы Python. День 5. Сортировка списка по убыванию Метод sort() сортирует список по возрастанию (по умолчанию). Чтобы sort() работал, элементы списка должны быть одного типа. Нельзя сортировать список со смешанными типами данных, например числа и строки. У метода sort() есть параметр reverse; чтобы отсортировать список по убыванию, установите reverse=True.
list1 = [2, 5, 6, 8, 1, 8, 9, 11]

list1.sort(reverse=True)
print(list1)

# [11, 9, 8, 8, 6, 5, 2, 1]
Помните: sort() это строго метод списка (list). Его нельзя использовать для сортировки set, tuple, string или dictionary. Метод sort() не возвращает новый список; он сортирует существующий список на месте (in place). Если вы попробуете создать новый объект с помощью sort(), он вернет None. Пример ниже:
list1 = [2, 5, 6, 8, 1, 8, 9, 11]
list2 = list1.sort(reverse=True)
print(list2)

# None
У метода sort() есть необязательный параметр key, который позволяет настроить поведение сортировки. Этот параметр используется для передачи функции, которая задает критерий сортировки элементов списка. В примере ниже у нас список кортежей, и мы хотим отсортировать его по возрасту студента. Используя параметр key вместе с lambda-функцией, можно реализовать такую кастомную сортировку. См. ниже:
students = [
    ("Alice", 22),
    ("Bob", 20),
    ("Charlie", 24)
]

# Сортируем студентов по возрасту, используя lambda-функцию как key
students.sort(key=lambda students: students[1])
print(students)

# [('Bob', 20), ('Alice', 22), ('Charlie', 24)]
Метод sort() является стабильным (stable), то есть сохраняет относительный порядок равных элементов в отсортированном списке. Если у двух элементов одинаковый ключ сортировки, их исходный порядок сохраняется. Например, если у "Alice" и "Bob" одинаковый возраст, их порядок останется прежним. Это и называется стабильной сортировкой (stable sorting). См. пример:
students = [
    ("Alice", 22),
    ("Bob", 22),
    ("Charlie", 24)
]

# Сортируем студентов по возрасту, используя lambda-функцию как key
students.sort(key=lambda students: students[1])
print(students)

# [('Alice', 22), ('Bob', 22), ('Charlie', 24)]
Как видно, порядок элементов "Alice" и "Bob" не изменился, потому что у них одинаковый возраст. 👉 @PythonPortal

Чувак сжал 2,87 ГБ данных до 8,9 МБ (!) с помощью своего кастомного компрессора данных :D Там было 21k JSON-файлов с данными
Чувак сжал 2,87 ГБ данных до 8,9 МБ (!) с помощью своего кастомного компрессора данных :D Там было 21k JSON-файлов с данными о крикетных матчах, он использовал их структуру и сжал это до ~42,46 МБ Максимум, что смог gzip, это ~53 МБ, а 7z ~45 МБ. Потом он скомбинировал свой компрессор + 7z и ужал до 8,9 МБ Это ЧИСТАЯ случайность, дальше сжать уже просто нельзя. Ему пришлось почитать про энтропию Шеннона и алгоритмическое сжатие данных Полный разбор в GitHub-репозитории 😎 👉 @PythonPortal

Немного базы Python. День 4: Получение текущего времени и даты Ниже приведенный код показывает, как можно получить текущее время с помощью модуля datetime. Метод now() возвращает объект datetime, представляющий текущие дату и время в соответствии с системными часами. Метод strftime() форматирует время для нужного вывода. Этот код показывает, как использовать модуль datetime вместе с методом strftime(), чтобы получить отформатированную строку времени в формате часов, минут и секунд.
from datetime import datetime

time_now = datetime.now().strftime('%H:%M:%S')
print(f'Текущее время: {time_now}')
Текущее время: 17:37:28
Что, если мы хотим вернуть сегодняшнюю дату? Мы можем использовать date из модуля datetime. Ниже используется метод today():
from datetime import date

today_date = date.today()
print(today_date)
2023-09-20
👉 @PythonPortal

Совет для AI-инженеров 💡 Небольшая VLM, дообученная на вашем кастомном датасете, по точности может быть на уровне GPT-5 и при этом стоит в 50 раз дешевле. Например, LFM2.5-VL-1.6B от Liquid Ai можно гонять локально на полной скорости через llama.cpp ↓ - Python CLI пример 👉 @PythonPortal

Конец игры 👉 @PythonPortal

Немного базы. День 3: Календарь в Python В Python есть встроенный модуль calendar. Мы можем импортировать этот модуль, чтобы вывести календарь. С календарём можно делать много разных вещей. Допустим, мы хотим посмотреть апрель 2022 года. Мы используем класс month из модуля calendar и передадим год и месяц в качестве аргументов. См. ниже:
import calendar

month = calendar.month(2022, 4)
print(month)
Есть ещё много всего, что можно сделать с calendar. Например, с его помощью можно проверить, является ли заданный год високосным или нет. Давай проверим, високосный ли 2022 год.
import calendar

month = calendar.isleap(2022)
print(month)
False
👉 @PythonPortal

Ускорь JSON-ответы FastAPI в 2 раза, а то и больше 1. Обновись до только что вышедшего FastAPI 0.131.0 2. Объявляй response m
Ускорь JSON-ответы FastAPI в 2 раза, а то и больше 1. Обновись до только что вышедшего FastAPI 0.131.0 2. Объявляй response model (тип возврата) После этого @pydantic будет заниматься JSON-сериализацией на стороне Rust 🦀 https://fastapi.tiangolo.com/advanced/custom-response/#json-performance 👉 @PythonPortal

На Stepik добавили курс «Linux с нуля» Этот курс закрывает всю обязательную Linux-базу для работы в IT. Подойдёт для: - разра
+4
На Stepik добавили курс «Linux с нуля» Этот курс закрывает всю обязательную Linux-базу для работы в IT. Подойдёт для:
- разработчиков - девопсов и админов - специалистов по данным и ML - специалистов поддержки и сопровождения - тестировщиков и безопасников
Внутри 20+ модулей: от установки Linux и работы с файлами до сетей, прав, дисков, процессов, автоматизации на Bash и многого другого. Всё сразу закрепляется на практике (200+ заданий с автопроверкой) Материал подаётся понятным языком, шаг за шагом, на реальных примерах и с наглядными схемами После прохождения вы получите сертификат, который можно добавить в резюме. В ближайшие 48ч курс доступен со скидкой 30% по промокоду «23LINUX30»: открыть курс на Stepik

HTTP против HTTPS наглядно 👉 @PythonPortal

Немного базы Python. День 2: cлияние словарей Если у тебя есть два словаря, которые нужно объединить, это можно сделать двумя простыми способами. Можно использовать оператор merge (|) или оператор (**). Ниже у нас есть два словаря: first_dict и second_dict. Мы будем использовать эти два метода, чтобы объединить словари. Вот код: 1️⃣ Использование оператора merge (|)
first_dict = {"kelly": 23,
              "Derick": 14, "John": 7}
second_dict = {"Ravi": 45, "Mpho": 67}

combined_dict = first_dict | second_dict
print(combined_dict)
Вывод:
{'kelly': 23, 'Derick': 14, 'John': 7, 'Ravi': 45, 'Mpho': 67}
2️⃣Метод 2: использование оператора merge (**) С этим оператором нужно поместить словари внутрь фигурных скобок. В коде ниже мы “подставляем” два словаря для объединения с помощью двух операторов *. Оба словаря заключены в фигурные скобки и разделены запятой.
first_dict = {"kelly": 23,
              "Derick": 14, "John": 7}
second_dict = {"Ravi": 45, "Mpho": 67}

combined_dict = {**first_dict, **second_dict}
print(combined_dict)
Вывод:
{'kelly': 23, 'Derick': 14, 'John': 7, 'Ravi': 45, 'Mpho': 67}
👉 @PythonPortal