Сегодня разберем довольно частую задачу на собеседованиях:
Необходимо объединить два словаря в один. Довольно частая проблема, которая встречается в работе, например для объединения двух разных источников данных.
Для решения есть два варианта:
1. Для Python 3.9.
2. Для Python 3.5.
В результате Python объединяет ключи словаря в порядке, указанном в выражении, перезаписывая дубликаты слева направо.
В следующем посте разберем задачи из новой рубрики на собеседованиях “Pandas-программист”. Интересующие вопросы задавайте в комментариях! #python #собеседование #словари
Необходимо объединить два словаря в один. Довольно частая проблема, которая встречается в работе, например для объединения двух разных источников данных.
x = {'a': 1, 'b': 2}
y = {'b': 3, 'c': 4}Для решения есть два варианта:
1. Для Python 3.9.
z = x | y
2. Для Python 3.5.
z = {**x, **y}В результате Python объединяет ключи словаря в порядке, указанном в выражении, перезаписывая дубликаты слева направо.
{'a': 1, 'b': 3, 'c': 4}В следующем посте разберем задачи из новой рубрики на собеседованиях “Pandas-программист”. Интересующие вопросы задавайте в комментариях! #python #собеседование #словари
👍12❤4👏1
Внимание, друзья! 🎓
Сегодня поговорим о словарях Python! 🐍📚
🤔 Вам когда-нибудь требовалось хранить данные таким образом, чтобы к ним было легко получить доступ или изменить их? В таком случае пригодятся словари!
🔑 Словари похожи на систему хранения, где вы по слову (ключ) находите его определение (значение).
📝 Вот пример того, как создать словарь на Python:
🍎,🍌,🍊 В этом примере у нас есть три ключа (яблоко, банан и апельсин) с соответствующими им значениями (2, 3 и 1).
🔍 Чтобы получить доступ к значению, используй ключ следующим образом:
🔄 Чтобы изменить значение, просто присвой ключу новое значение:
🗑️ Чтобы удалить пару ключ-значение, используй ключевое слово del:
⚡ Вызывает ли работа со словарями у тебя сложности, если да, то задавай вопросы в комментариях!
💻 Если показалось очень легко, то в следующем посте разберем более сложные манипуляции!
#python #словари
Сегодня поговорим о словарях Python! 🐍📚
🤔 Вам когда-нибудь требовалось хранить данные таким образом, чтобы к ним было легко получить доступ или изменить их? В таком случае пригодятся словари!
🔑 Словари похожи на систему хранения, где вы по слову (ключ) находите его определение (значение).
📝 Вот пример того, как создать словарь на Python:
my_dict = {"яблоко": 2, "банан": 3, "апельсин": 1}🍎,🍌,🍊 В этом примере у нас есть три ключа (яблоко, банан и апельсин) с соответствующими им значениями (2, 3 и 1).
🔍 Чтобы получить доступ к значению, используй ключ следующим образом:
my_dict["яблоко"]
# Output: 2
🔄 Чтобы изменить значение, просто присвой ключу новое значение:
my_dict["банан"] = 4
my_dict["банан"]
# Output: 4
🗑️ Чтобы удалить пару ключ-значение, используй ключевое слово del:
del my_dict["апельсин"]
my_dict
Output: {"яблоко": 2, "банан": 4}
⚡ Вызывает ли работа со словарями у тебя сложности, если да, то задавай вопросы в комментариях!
💻 Если показалось очень легко, то в следующем посте разберем более сложные манипуляции!
#python #словари
🔥10❤3👏2
Всем привет! Сегодня продолжим тему словарей и разберем более сложные случаи!
Такие примеры часто встречаются на собеседованиях в части Python.
🔍 Использование метода get()
Метод get() является полезным инструментом при работе со словарями. Он позволяет получить доступ к значению для данного ключа, и если ключ не найден, он возвращает значение по умолчанию.
В этом примере у нас есть список чисел, и мы хотим найти все дубликаты и создать словарь, где ключами являются уникальные числа, а значениями - их частота в списке.
В этом примере мы имитируем бросание игральной кости 100 раз и подсчитываем, сколько раз появляется каждый результат. Мы используем словарь, чтобы отслеживать подсчеты.
Вы можете создать словарь из двух списков, где один список содержит ключи, а другой - значения. Вот пример:
#python #собеседование #словари
Такие примеры часто встречаются на собеседованиях в части Python.
🔍 Использование метода get()
Метод get() является полезным инструментом при работе со словарями. Он позволяет получить доступ к значению для данного ключа, и если ключ не найден, он возвращает значение по умолчанию.
my_dict = {"apple": 2, "banana": 3, "orange": 1}
my_dict.get("apple", 0)
# Output: 2
my_dict.get("kiwi", 0)
# Output: 0
🧹 Нахождение дубликатов (словарное включение)В этом примере у нас есть список чисел, и мы хотим найти все дубликаты и создать словарь, где ключами являются уникальные числа, а значениями - их частота в списке.
numbers = [1, 2, 2, 3, 4, 4, 4, 5, 6, 6, 7]🎲 Подсчет бросаний кубика со словарем
unique_numbers = {num: numbers.count(num) for num in numbers}
print(unique_numbers)
# Output: {1: 1, 2: 2, 3: 1, 4: 3, 5: 1, 6: 2, 7: 1}
В этом примере мы имитируем бросание игральной кости 100 раз и подсчитываем, сколько раз появляется каждый результат. Мы используем словарь, чтобы отслеживать подсчеты.
import random🔑 Создание словаря из двух списков
rolls = [random.randint(1, 6) for _ in range(100)]
counts = {}
for roll in rolls:
counts[roll] = counts.get(roll, 0) + 1
print(counts)
# Output: {1: 16, 2: 18, 3: 18, 4: 21, 5: 15, 6: 12}
Вы можете создать словарь из двух списков, где один список содержит ключи, а другой - значения. Вот пример:
keys = ['apple', 'banana', 'orange']В следующем посте разберем другие методы словарей и как их использовать для решения задач!
values = [2, 3, 1]
my_dict = dict(zip(keys, values))
print(my_dict)
# Output: {'apple': 2, 'banana': 3, 'orange': 1}
#python #собеседование #словари
🔥9❤8👏2
📊🔎🤖 Всем привет, сегодня будем решать задачи с собеседований! Продолжая наше обсуждение словарных методов, давайте взглянем на dictionary comprehension (словарное включение). Словарное включение - это краткий и мощный способ создания словарей на Python.
📝 Словарное включение выполняется по синтаксису, аналогичному списковому включению, но с использованием пар ключ-значение вместо отдельных значений. Вот пример:
🧐 Словарное включение может быть использовано для решения самых разных задач. Вот несколько примеров:
🔍 Задача 1: Преобразуйте список строк в словарь, где ключом является строка, а значением - длина строки.
🔍 Задача 2: Отфильтруйте словарь, чтобы он включал только пары ключ-значение, в которых значение больше 5.
🔍 Задача 3: Создайте словарь, использую словарное включение, на основе списка из чисел, где ключом является число, а его значением квадрат числа!
Если получится решить, то присылай свой код в комментарии, а если нет, то задавай вопросы и всей командой поможем тебе!
#собеседование #python #словари #задача
📝 Словарное включение выполняется по синтаксису, аналогичному списковому включению, но с использованием пар ключ-значение вместо отдельных значений. Вот пример:
my_dict = {key: value for key, value в iterable}🧐 Словарное включение может быть использовано для решения самых разных задач. Вот несколько примеров:
🔍 Задача 1: Преобразуйте список строк в словарь, где ключом является строка, а значением - длина строки.
my_list = ['apple', 'banana', 'cherry']
my_dict = {string: len(string) for string in my_list}
print(my_dict)
# Output: {'apple': 5, 'banana': 6, 'cherry': 6}🔍 Задача 2: Отфильтруйте словарь, чтобы он включал только пары ключ-значение, в которых значение больше 5.
my_dict = {'apple': 3, 'banana': 6, 'cherry': 2, orange: 8}
filtered_dict = {key: value for key, value in my_dict.items() if value > 5}
print(filtered_dict)
# Output: {'banana': 6, orange: 8}🔍 Задача 3: Создайте словарь, использую словарное включение, на основе списка из чисел, где ключом является число, а его значением квадрат числа!
numbers = [1, 2, 3, 4, 5]
squares_dict = {место для кода}
# Output {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}Если получится решить, то присылай свой код в комментарии, а если нет, то задавай вопросы и всей командой поможем тебе!
#собеседование #python #словари #задача
🔥9👍7🥰1
📊Всем привет! Сегодня будет новый формат, где мы по шагам разберем решение рабочей задачи с моими комментариями!
♻А также применим наши знания о словарях из предыдущих постов и познакомимся с новой структурой данных в Python - множества (set).
📝 Если хочешь испытать себя, то реши задачу самостоятельно, пришли решение в комментарии и сравни с моим!
🔍 Задача! Есть список со словарями и нам необходимо найти все уникальные ключи:
💯Решение:
1. Первое, что приходит на ум, это создать цикл и пройтись по списку:
2. Далее, нам необходимо получить доступ к ключам каждого словаря, это можно сделать с помощью метода .keys():
3. Теперь, хотелось бы сохранить эти ключи в список, для этого создадим пустой список result и с помощью метода .extend() добавим ключи:
4. На данном этапе у нас есть список со всеми значениями ключей из словарей и необходимо оставить только уникальные, для этого можно использовать структуру данных Python - множества (set), в которой могут быть только уникальные значения:
🐥Вот такое решение у меня получилось в первом приближение, есть идеи переписать это полностью с использованием множеств и метода .update().
🐊В следующих постах более подробно расскажу множествах и как использовать их в работе и для решения задач на собеседованиях!
👉 Обязательно задавайте вопросы и присылайте свои решения!
🗿Понравился ли такой формат?
#python #словари #множества #работа
♻А также применим наши знания о словарях из предыдущих постов и познакомимся с новой структурой данных в Python - множества (set).
📝 Если хочешь испытать себя, то реши задачу самостоятельно, пришли решение в комментарии и сравни с моим!
🔍 Задача! Есть список со словарями и нам необходимо найти все уникальные ключи:
arr = [{'a': 1, 'b': 2},
{'a': 3, 'b': 4},
{'c': 5}]
💯Решение:
1. Первое, что приходит на ум, это создать цикл и пройтись по списку:
for i in arr:
pass
2. Далее, нам необходимо получить доступ к ключам каждого словаря, это можно сделать с помощью метода .keys():
for i in arr:
i.keys()3. Теперь, хотелось бы сохранить эти ключи в список, для этого создадим пустой список result и с помощью метода .extend() добавим ключи:
result = []
for i in arr:
result.extend(i.keys())
print(result)
#Output ['a', 'b', 'a', 'b', 'c']4. На данном этапе у нас есть список со всеми значениями ключей из словарей и необходимо оставить только уникальные, для этого можно использовать структуру данных Python - множества (set), в которой могут быть только уникальные значения:
result = []
for i in arr:
result.extend(i.keys())
result = set(result)
print(result)
#Output ['a','c','b']🐥Вот такое решение у меня получилось в первом приближение, есть идеи переписать это полностью с использованием множеств и метода .update().
🐊В следующих постах более подробно расскажу множествах и как использовать их в работе и для решения задач на собеседованиях!
👉 Обязательно задавайте вопросы и присылайте свои решения!
🗿Понравился ли такой формат?
#python #словари #множества #работа
❤9🔥9👏3
📊 Давайте поговорим о структуре данных в Python - множество (set) 🐍
🤔 Что такое множество?
Множество - это неупорядоченная коллекция уникальных элементов. Проще говоря, это похоже на список, но без дубликатов.
🤓 Вот некоторые методы множества:
add() - добавляет элемент в набор
remove() - удаляет элемент из набора
intersection() - возвращает пересечение двух наборов
union() - возвращает объединение двух наборов
👨💻 Вот пример кода:
🎉 Множества являются полезным инструментом при анализе данных, поскольку они позволяют нам легко удалять дубликаты и выполнять операции на много быстрее, чем со списками. Поэтому в следующий раз, когда вы столкнетесь с дублирующимися данными, попробуйте использовать множества!
❓Вопрос: что будет если с помощью метода .add() добавить в множество уже имеющийся элемент? Пиши ответ в комментариях! В следующем посте раберем на сколько множество быстрее, чем списки!
#python #множества #set
🤔 Что такое множество?
Множество - это неупорядоченная коллекция уникальных элементов. Проще говоря, это похоже на список, но без дубликатов.
🤓 Вот некоторые методы множества:
add() - добавляет элемент в набор
remove() - удаляет элемент из набора
intersection() - возвращает пересечение двух наборов
union() - возвращает объединение двух наборов
👨💻 Вот пример кода:
# Создаем 2 множества
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1) # Output: {1, 2, 3, 4, 5}
print(set2) # Output: {4, 5, 6, 7, 8}
# Добавим элемент в set1
set1.add(6)
print(set1) # Output: {1, 2, 3, 4, 5, 6}
# Удлаим элемент из set2
set2.remove(8)
print(set2) # Output: {4, 5, 6, 7}
# Найдем пересечение set1 и set2
intersection_set = set1.intersection(set2)
print(intersection_set) # Output: {4, 5, 6}
# Найдем уникальные значения set1 and set2
union_set = set1.union(set2)
print(union_set) # Output: {1, 2, 3, 4, 5, 6, 7}🎉 Множества являются полезным инструментом при анализе данных, поскольку они позволяют нам легко удалять дубликаты и выполнять операции на много быстрее, чем со списками. Поэтому в следующий раз, когда вы столкнетесь с дублирующимися данными, попробуйте использовать множества!
❓Вопрос: что будет если с помощью метода .add() добавить в множество уже имеющийся элемент? Пиши ответ в комментариях! В следующем посте раберем на сколько множество быстрее, чем списки!
#python #множества #set
👍10🔥8❤1
📣 Всем привет! 🐍
Я хотел поделиться классной встроенной функцией в Python, которая может помочь Вам писать более эффективный код: 🔍
👉
👉
👉
👉
Вот пример использования
Какие еще способы применения функции 🔍
Также сообщаю, что мы с @dianakoloda, Head of HR DataGo!, записали видео с ответами на Ваши вопросы и скоро его можно будет посмотреть!
#python
Я хотел поделиться классной встроенной функцией в Python, которая может помочь Вам писать более эффективный код: 🔍
range().
👉
range()- это удобная функция для генерации последовательности чисел. Она обычно используется в циклах
forдля выполнения итерации определенное количество раз. Вот пример:
for i in range(5):Функция
print(i)
Output: 0 1 2 3 4
range()принимает до трех аргументов:
start,
stopи
step.
👉
start(необязательно) — это первое значение последовательности. Если не указано, то по умолчанию значение равно 0.
👉
stop(обязательно) – это конечное значение последовательности. Это значение не включено в последовательность.
👉
step(необязательно) — это разница между каждым значением в последовательности. Если не указано, то по умолчанию значение равно 1.
Вот пример использования
range()со всеми тремя параметрами для генерации последовательности четных чисел от 2 до 10:
for i in range(2, 11, 2):Вы также можете использовать параметр
print(i)
Output: 2 4 6 8 10
stepдля изменения списка в обратном направлении, установив для него значение -1. Например:
my_list = [1, 2, 3, 4, 5]В следующих постах мы познакомимся с еще некоторыми встроенными функциями: 🧐
reversed_list = my_list[::-1] # using slicing
print(reversed_list)
Output: [5, 4, 3, 2, 1]
# Используя range
reversed_list = []
for i in range(len(my_list)-1, -1, -1):
reversed_list.append(my_list[i])
print(reversed_list)
Output: [5, 4, 3, 2, 1]
enumerateи 🗺
map.
Какие еще способы применения функции 🔍
range()вы знаете?
Также сообщаю, что мы с @dianakoloda, Head of HR DataGo!, записали видео с ответами на Ваши вопросы и скоро его можно будет посмотреть!
#python
❤17🥰16🎉8🤩6
👋 Всем привет! Сегодня разберем циклы в
⏰ Цикл повторяет определенную задачу снова и снова, пока он не получит команду остановиться.
🤔 Но как мы сообщаем циклу, когда нужно остановиться?
🤖 Цикл
👦🏼 Например, вы хотите сосчитать от 1 до 10:
🚶Теперь давайте поговорим о циклах
🍎 Например, предположим, у вас есть список фруктов, и вы хотите вывести каждый фрукт в списке:
🤔 Итак, подведем итог: циклы
👋 Вот домашнее задание для закрепления материала:
🧐 Задача: Напишите код на
Выберете какой цикл использовать и объясните почему!
В следующих постах подробно разберем примеры использования того или иного цикла и сравним их с точи зрения скорости выполнения.
#python #циклы
Python: while и for! 🐍⏰ Цикл повторяет определенную задачу снова и снова, пока он не получит команду остановиться.
🤔 Но как мы сообщаем циклу, когда нужно остановиться?
🤖 Цикл
while будет работать до тех пор, пока выполняется определенное условие.👦🏼 Например, вы хотите сосчитать от 1 до 10:
count = 1
while count <= 10:
print(count)
сount = count + 1
Этот цикл будет выполняться до тех пор, пока count будет меньше или равно 10. Он будет выводить значение count каждый раз в цикле, а затем добавлять 1 к count. Когда количество достигает 11, условие count <= 10 больше не выполняется, и цикл останавливается.🚶Теперь давайте поговорим о циклах
for. Цикл for используется для перебора последовательности элементов, например таких как список или строка.🍎 Например, предположим, у вас есть список фруктов, и вы хотите вывести каждый фрукт в списке:
fruits = ['яблоко', 'банан', 'вишня']
for fruit in fruits:
print(fruit)
Этот цикл пройдется по каждому элементу в списке фруктов и напечатает его. Переменная fruit используется для представления каждого элемента по очереди.🤔 Итак, подведем итог: циклы
while продолжают выполняться до тех пор, пока условие истинно, а циклы for повторяют последовательность элементов.👋 Вот домашнее задание для закрепления материала:
🧐 Задача: Напишите код на
Python, который выводит первые 10 четных чисел. Выберете какой цикл использовать и объясните почему!
В следующих постах подробно разберем примеры использования того или иного цикла и сравним их с точи зрения скорости выполнения.
#python #циклы
👍6🥰6 1
📢 Аналитики, привет! Кто-то сталкивался с проблемой, что нужно посчитать количество повторений элемента в списке? Или узнать какие элементы повторяются больше всего раз? Для решения данной задачи можно написать свою собственную функцию или можно воспользоваться встроенным модулем
🧮 Объект
⚖️ Подробное сравнение на 60 000 элементах в комментариях!
#python
Collections и объектом Counter. 🧮 Объект
Counter позволяет нам подсчитывать количество каждого элемента и возвращает словарь с результатами:
# импортируем библиотеку
from collections import Counter
# создаем список со значениями
lst = ['apple', 'banana', 'orange', 'apple', 'apple', 'orange']
# создаем объект
cnt = Counter(lst)
print(cnt)
Output: Counter({'apple': 3, 'orange': 2, 'banana': 1})
# для вывода только 2 самых распространенных элементов
print(cnt.most_common(2))
Output: [('apple', 3), ('orange', 2)]
👩🏭Но как насчет производительности? Давайте сравним метод Counter с решением на Python, используя timeit:d = {}
for elem in lst:
d[elem] = d.get(elem, 0) + 1
print(d)
Output: {'apple': 3, 'banana': 1, 'orange': 2}
🔎 Результат мы получим одинаковый, но в плане скорости выполнения Counter работает в разы быстрее, чем даже самое эффективное решение на чистом Python. ⚖️ Подробное сравнение на 60 000 элементах в комментариях!
#python
🔥13👍6
📹 Вчера в видео мы затронули такую сущность как массивы
numpy. Разберем в чем их отличия от списка в Python. 📊 Списки - это встроенная структура данных в
Python, которая может содержать разнородные элементы любого типа. Давайте рассмотрим пример создания списка:my_list = [1, 2, 3, 'a', 'b', 'c']
🔢 Массивы numpy являются фундаментальной структурой данных в научных вычислениях и специально разработаны для числовых операций. Они однородны по своей природе, что означает, они могут содержать только элементы одного и того же типа данных. Вот пример создания массива numpy:import numpy as np
my_array = np.array([1, 2.5, 3])
array([1., 2.5, 3.])
my_array.dtype
dtype('float64')🧮 Как мы видим,
numpy автоматически переводит из формата int64 в float64 целиком весь массив, даже если хотя бы один элемент является float64 - однородность это цена, которую приходится заплатить за скорость. 🎯 Еще одно ключевое отличие заключается в том, что массивы допускают поэлементные операции:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = arr1 * arr2
print(result)
# Output: [4, 10, 18]
🤔 Напротив, выполнение поэлементных операций со списками потребовало бы перебора каждого элемента, что медленнее и не так лаконично. 🔭 Еще одной полезной функцией массивов
numpy является broadcasting, которая позволяет выполнять операции между массивами различной формы:import numpy as np
arr = np.array([1, 2, 3])
result = arr * 2
print(result) # Output: [2, 4, 6]
📝 Таким образом, в то время как списки являются структурой данных общего назначения в Python, массивы numpy специально разработаны для вычислений и обеспечивают лучшую производительность и функциональность. Однако, если вам нужно хранить элементы разных типов, то придется использовать списки. 🏠 Попробуйте повторить поэлементные операции и broadcasting с помощью списка
Python и присылайте резудьтаты в комментарии. 🏎️ В следующих постах отдельно разберем индексацию и сравним скорость работы разных методов.
💬 Есть хотите обсудить аналитику данных, попросить совета по резюме, поделиться тестовыми или просто задать интересующие вопросы, то присоединяйтесь к нашему чату.
#numpy #python
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Аналитические Важности: Pandas 2.0, AutoProfiler, API Hacking, Валидация, Aha! 23, Обзор баз данных
Аналитические важности - видеоподкаст о технологиях, трендах и событиях мира аналитики
Гаврилов Алексей - @onlyanalyst
Группа в Telegram - @onlyanalystgroup
Евгений Сафиулин - @J_e_snow
К сожалению, ссылки пока не могу прикрепить к описанию в видео, поэтому…
Гаврилов Алексей - @onlyanalyst
Группа в Telegram - @onlyanalystgroup
Евгений Сафиулин - @J_e_snow
К сожалению, ссылки пока не могу прикрепить к описанию в видео, поэтому…
❤13👍5