This media is not supported in your browser
VIEW IN TELEGRAM
В Python есть малоизвестная фишка: можно использовать оператор присваивания
:=
(его ещё называют «walrus»). Он позволяет присваивать значение прямо внутри выражения. Это делает код короче и избавляет от повторных вызовов функций. 📌 Особенности:
• Работает в
while
, if
, list comprehension. • Удобен для сокращения кода и избежания дублирования.
• Но злоупотребление может сделать код менее читаемым.
Чтение строк из файла с walrus-оператором
def read_file(path):
with open(path) as f:
while (line := f.readline()):
print("Строка:", line.strip())
# Поиск совпадения через regex
import re
pattern = re.compile(r"\d+")
if (match := pattern.search("abc123xyz")):
print("Нашли число:", match.group())
# Применение в list comprehension
nums = [s for s in ["42", "hello", "100"] if (n := s.isdigit())]
print(nums) # ['42', '100']
📌 Больше фишек Python
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍8🔥7😱1
🐍 Полезный совет по 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() для объединения строк из списка — это питонично, быстро и удобно.
👍30❤7🔥6😁1
🚀 Docker + Python полезный совет
Если вы запускаете Python-приложения в Docker, ускорить их можно с помощью многоступенчатой сборки.
Это позволяет собирать зависимости отдельно и не тащить весь мусор в финальный образ.
💡 Такой подход уменьшает размер образа и ускоряет деплой.
Вместо гигабайт вы получаете лёгкий production-контейнер с только нужным кодом и либами.
@pythonl
Если вы запускаете Python-приложения в Docker, ускорить их можно с помощью многоступенчатой сборки.
Это позволяет собирать зависимости отдельно и не тащить весь мусор в финальный образ.
# Этап сборки зависимостей
FROM python:3.12-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt
# Финальный минимальный образ
FROM python:3.12-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH
CMD ["python", "app.py"]
💡 Такой подход уменьшает размер образа и ускоряет деплой.
Вместо гигабайт вы получаете лёгкий production-контейнер с только нужным кодом и либами.
@pythonl
👍19❤7🔥5😱1