Напишите функцию, которая принимает текст и возвращает словарь, где ключами являются слова из текста, а значениями — список индексов строк, в которых эти слова встречаются.
Пример:
text = """Python is great.
JavaScript is also great.
Python is popular."""
result = word_index(text)
print(result)
# Ожидаемый результат:
# {
# 'python': [0, 2],
# 'is': [0, 1, 2],
# 'great': [0, 1],
# 'javascript': [1],
# 'also': [1],
# 'popular': [2]
# }
Решение задачи
def word_index(text):
from collections import defaultdict
import re
index = defaultdict(list)
lines = text.splitlines()
for i, line in enumerate(lines):
words = re.findall(r'\b\w+\b', line.lower())
for word in words:
if i not in index[word]:
index[word].append(i)
return dict(index)
# Пример использования:
text = """Python is great.
JavaScript is also great.
Python is popular."""
result = word_index(text)
print(result)
Please open Telegram to view this post
VIEW IN TELEGRAM
Разработчик операций AI, Python/React (удаленно)
Python-разработчик
Junior/Middle Python Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье объясняется, что такое LangChain — фреймворк для работы с большими языковыми моделями (LLM), их интеграцией в приложения и созданием AI-агентов. Рассмотрены базовые компоненты и их применение.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Метаклассы в Python — это классы, которые определяют поведение других классов. Они позволяют изменять или расширять логику создания классов, добавляя к ним атрибуты или методы. Метаклассы чаще всего используются для создания сложных API или DSL (языков предметной области).
# Определение метакласса
class MyMeta(type):
def __new__(cls, name, bases, dct):
dct['custom_method'] = lambda self: f"Метод добавлен через {cls.__name__}"
return super().__new__(cls, name, bases, dct)
# Используем метакласс для создания класса
class MyClass(metaclass=MyMeta):
pass
# Пример использования
obj = MyClass()
print(obj.custom_method()) # Метод добавлен через MyMeta
🗣️ В этом примере метакласс MyMeta добавляет метод custom_method ко всем классам, которые его используют. Метаклассы дают мощный инструмент для динамического создания и модификации классов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Python разработчик (удаленно)
•
Python, Celery, PostgreSQL, Docker, Django, Apache Spark, PyTorch, Greenplum, Apache Airflow•
до 200 000 ₽ | 3 года опытаПитонист-бекендер в проект с тестами
•
Python, Django, pytest, GitHub Actions, Datadog, PostgreSQL, Docker Swarm, Celery, RabbitMQ•
от 150 000 до 250 000 ₽ | 1–3 года опытаCloud Security Engineer
•
Kubernetes, SSDL, Python, Golang•
до 9 000 € | 3 года опытаPlease open Telegram to view this post
VIEW IN TELEGRAM
Разбираемся в устройстве Dash и Shiny и почему оба фреймворка отлично подходят для решения единственной задачи - создать функциональный и красивый дашборд.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите скрипт, который принимает путь к файлу CSV, конвертирует его содержимое в формат JSON и сохраняет результат в новый файл с тем же именем, но с расширением .json.
Пример:
id,name,age
1,Alice,30
2,Bob,25
3,Charlie,35
python csv_to_json.py data.csv
[
{"id": "1", "name": "Alice", "age": "30"},
{"id": "2", "name": "Bob", "age": "25"},
{"id": "3", "name": "Charlie", "age": "35"}
]
Решение задачи
import csv
import json
import sys
import os
def csv_to_json(csv_file_path):
try:
json_file_path = os.path.splitext(csv_file_path)[0] + ".json"
with open(csv_file_path, 'r', encoding='utf-8') as csv_file:
reader = csv.DictReader(csv_file)
data = [row for row in reader]
with open(json_file_path, 'w', encoding='utf-8') as json_file:
json.dump(data, json_file, indent=4, ensure_ascii=False)
print(f"Файл успешно конвертирован: {json_file_path}")
except FileNotFoundError:
print(f"Ошибка: Файл {csv_file_path} не найден.")
except Exception as e:
print(f"Ошибка: {e}")
# Пример использования:
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Использование: python csv_to_json.py <путь_к_csv>")
else:
csv_to_json(sys.argv[1])
Please open Telegram to view this post
VIEW IN TELEGRAM
Узнайте, как я превратил свой Telegram в персональную файловую систему с помощью бота на Python. В статье делюсь опытом разработки, полным кодом и лайфхаками.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Командный интерпретатор Bash и язык программирования Python — два ключевых инструмента в работе с Linux-системами. В статье сравниваются их возможности для скриптов и системных задач.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Senior/Middle full stack Python/Django разработчик (удаленно, почасовая)
•
Python, Django, PostgreSQL, HTML, CSS, JavaScript, Bootstrap, Tailwind, Git, Linux•
от 100 000 до 160 000 ₽ | 3–5 лет опытаПродуктовый аналитик
•
SQL, Python, системы визуализации (Power BI, Tableau, Datalens, Superset, Google Data Studio, QlikView/QlikSense), аналитические системы (Appsflyer, Amplitude, Firebase, Mixpanel, Google Analytics, Яндекс.Метрика, AppMetrica)•
до 270 000 ₽ | 3–5 лет опытаSenior Backend Engineer
•
Python, Django, PostgreSQL, Golang, микросервисная архитектура, AWS (RDS, DocumentDB), юнит-тестирование•
от 3 000 $ | 5 лет опытаPlease open Telegram to view this post
VIEW IN TELEGRAM
Каждый Django-разработчик рано или поздно сталкивается с неожиданно «тяжелыми» запросами, способными превратить быстрое приложение в неповоротливого слона. Рассказываем, как с помощью django-pgactivity выследить и обезвредить такие запросы, прежде чем они создадут проблемы вашим пользователям.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
@property
в Python и зачем он нужен?Декоратор
@property
в Python превращает метод класса в атрибут, позволяя работать с ним, как с обычным свойством. Это упрощает доступ к приватным данным и добавляет контроль за их валидацией и изменением.С помощью
@property
можно создавать интерфейс для работы с данными объекта, защищая их от некорректных значений и обеспечивая читаемость кода.@property
используется для создания свойства age
, которое проверяет корректность введенного значения:class Person:
def __init__(self, age):
self._age = age
@property
def age(self):
return self._age
@age.setter
def age(self, value):
if value < 0:
raise ValueError("Возраст не может быть отрицательным.")
self._age = value
p = Person(30)
p.age = 35 # Работает нормально
print(p.age) # 35
p.age = -5 # ValueError: Возраст не может быть отрицательным.
🗣 Использование @property полезно для создания аккуратного интерфейса доступа к данным с их защитой и валидацией, соблюдая при этом принципы инкапсуляции.
Please open Telegram to view this post
VIEW IN TELEGRAM
Lead/Senior Automation QA (Python or Java)
•
Python, Linux, Java, CI/CD, Docker, Тестирование API, Тестирование UI, Разработка тест-кейсов•
Уровень дохода не указан | от 4 лет опытаData Science Tech Lead/Product owner
•
Python, SQL•
Уровень дохода не указан | более 5 лет опытаВедущий разработчик / Техлид Openstack
•
Python, Linux, Openstack, Golang•
Уровень дохода не указан | от 3 лет опытаPlease open Telegram to view this post
VIEW IN TELEGRAM
Статья открывает цикл о кастомизации Django админки, начиная с основ. Рассматриваются ключевые шаблоны и механизм их поиска, чтобы упростить понимание структуры и облегчить работу с админкой.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Ты в конце дня, устал, и хочется побыстрее смёрджить PR, чтобы закрыть задачу? Удержись от соблазна.
Please open Telegram to view this post
VIEW IN TELEGRAM
DevOps-инженер
Senior QA Engineer (Server Team)
Fullstack System Analyst
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья объясняет, как создать приложение для автоматического анализа онлайн-встреч. Используя API BotHub (Whisper-1 + Claude 3.5 Sonnet), вы научитесь извлекать ключевые идеи, распределять задачи и генерировать отчёты в формате PDF.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Напишите функцию, которая принимает список чисел и возвращает второе наибольшее число. Если в списке меньше двух уникальных чисел, функция должна вернуть
None
.[10, 20, 4, 45, 99]
45
[5, 5, 5]
None
Решение задачи
def find_second_largest(numbers):
# Удаляем дубликаты и сортируем список в порядке убывания
unique_numbers = sorted(set(numbers), reverse=True)
# Если уникальных чисел меньше двух, возвращаем None
return unique_numbers[1] if len(unique_numbers) >= 2 else None
# Пример использования:
print(find_second_largest([10, 20, 4, 45, 99])) # Ожидаемый результат: 45
print(find_second_largest([5, 5, 5])) # Ожидаемый результат: None
Please open Telegram to view this post
VIEW IN TELEGRAM
• Пишем Wake-on-LAN сервис на ESP8266 при помощи ChatGPT
• Необычные вкусы покупателей: что такое товарные пары и как их исследовать
• Kafka. Лучшие практики применения. Настройки Producer & Consumer
• Словари в Python: обзор и как пользоваться
• Хотите, покажу вам магию живого кода на p5py?
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья исследует методы нечеткого поиска для больших языковых моделей, включая триграммный и фонетический анализ, косинусное и евклидово сходство. Рассматриваются преимущества и ограничения методов для работы с неструктурированными данными.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM