Simulative – Telegram
7.38K subscribers
1.7K photos
70 videos
1 file
1.26K links
Привет! Мы — образовательная платформа в сфере аналитики Simulative: simulative.ru

Создаём курсы-симуляторы, где обучаем не на «апельсинках», а на кейсах из реального бизнеса.

Наш уютный чат: @itresume_chat
Поддержка: @simulative_support
Download Telegram
🔥 Задача с собеседования по Python [СБЕР]

Разместили на платформе новую задачу с собеседования по Python на должность Junior Data Engineer & Data Science.

Подробнее здесь 👉🏻 https://vk.cc/caVejr
👍5
​​Что такое CodeCoins? 💰

CodeCoins - внутренняя валюта на платформе IT Resume. За нее вы можете покупать некоторые задачи, тесты, подсказки и решения!

Подробнее о том, как получить ее бесплатно, тут 👉🏻 https://vk.cc/caSkOK
3👍2
🔥 Разбор тестового задания для аналитика с [Avito Weekend Offer]

Сегодня вместе с онлайн-университетом SF Education подготовили разбор задачи по Python с [Avito Weekend Offer].

Кстати, попробуйте сначала решить эту задачу самостоятельно 👉🏻 https://vk.cc/cb8QbP 😉

# Задача

Вам дано 2 набора чисел arr1 и arr2 в виде списка Python. Необходимо вернуть список, состоящий из элементов пересечения. Дубликаты необходимо удалить.

Важно: Если пересечение пустое, то возвращаем пустой список.

Пример:

 arr1 = [1, 2, 3], arr2 = [1, 1, 5]
Ответ: [1]

Пример:

 arr1 = [1, 2, 3], arr2 = [6, 7, 5]
Ответ: []

Пример:

 arr1 = [1, 2, 3], arr2 = [1, 2, 15, 3, 3]
Ответ: [1, 2, 3]

# Попытка 1

Самый простой подход - пробежаться по элементам каждого массива и проверить вхождение во второй массив. Если элемент есть в обоих массивах - добавляем к результату.

 
res = []
for el in arr1:
if el in arr2 and el not in res:
res.append(el)
for el in arr2:
if el in arr1 and el not in res:
res.append(el)

Очевидно, что это не самый оптимальный код - мы несколько раз пробегаемся по каждому списку, да еще и каждый раз проверяем: нет ли уже такого элемента в res.

Кроме того, одно значение может встречаться в каждом массиве несколько раз. Нет смысла проверять каждый раз - достаточно одного.

Чтобы убрать дубликаты, мы можем использовать множества - set. Они хранят уникальные значения в неупорядоченном виде.

 st1 = set(arr1)

# Попытка 2

У множеств в Python есть встроенный метод intersection - он как раз находит пересечение двух множеств.

Таким образом, решение задачи сводится к следующему:

1. Переводим оба списка в множества
2. С помощью метода intersection находим пересечение
3. На выходе intersection получается снова множество, поэтому переводим его в список с помощью функции list

Итоговый код:

 def PureIntersection(arr1, arr2):
return list(set(arr1).intersection(set(arr2)))
🔥7😱4👎1
🔥10👍1
​​Что вас бесит в Python и что бы вы изменили?
😱3
🔥 5 типичных ошибок при написании SQL-запросов

Сегодня подготовили разбор типичных ошибок при работе с SQL. Традиционно - вместе с онлайн-университетом SF Education 🙂

Основные тезисы:

1. Преобразование типов. 1/2 = 0. В некоторых СУБД деление целых чисел дает строго целое число. Как быть - рассказываем в карточках.

2. HAVING вместо WHERE. Встречали конструкции типа HAVING date >= '2019-01-01'? Так делать не надо.

3. Алиасы и план запроса. Фильтр WHERE обрабатывается сильно раньше оператора SELECT в плане запросе. Это накладывает некоторые ограничения на использование алиасов.

4. Лишние подзапросы. Тот случай, когда размер - не главное. Главное - опыт 😉

5. Игнорирование CASE. С помощью CASE можно сократить запрос в несколько раз и даже решить некоторые нетривиальные задачи.
👍13