Предположим, что наше приложение — это что-то там связанное с английским. У нас есть некоторый словарь в котором ключ — это английское слово, а значение — перевод этого слова:
animals = {
'cat': 'кот',
'dog': 'собака',
'mouse': 'мышь',
'elephant': 'слон',
}Нам нужно чтобы было наоборот: ключи на русском, а значения на английском. Пишем простое выражение:
print({value: key for key, value in animals.items()})
# >>> {'кот': 'cat', 'собака': 'dog', 'мышь': 'mouse', 'слон': 'elephant'}———
Good coding
#python #short #dict
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Допустим вам для проекта нужно сгенерировать английский алфавит.
alphabet = {chr(i): i - 64 for i in range(65, 91)}Эта строчка генерирует словарь с прописными буквами английского алфавита.
Функция chr() конвертирует целое число в Unicode-символ и возвращает его.
Юникод и кодировки в Python
———
Good coding
#python #short #dict #unicode
Please open Telegram to view this post
VIEW IN TELEGRAM
Ravesli
Функция chr() в Python / Ravesli
❤2👍1 1
С помощью метода reverse()
my_position = ['first', 'second', 'third']
my_position.reverse()
print(my_position)
# >>> ['third', 'second', 'first']
С помощью функции reversed()
sequence = [1, 2, 3, 4, 5, 6]
reverse_sequence = list(reversed(sequence))
print(reverse_sequence)
# >>> [6, 5, 4, 3, 2, 1]
С помощью среза
split_name = ['r', 'd', 'n', 'a', 's', 'k', 'e', 'l', 'a']
reverse_split_name = split_name[::-1]
print(reverse_split_name)
# >>> ['a', 'l', 'e', 'k', 's', 'a', 'n', 'd', 'r']
———
Good coding
#python #short #list
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2 1
Класс
deque (от "double-ended queue" - двухсторонняя очередь) в Python удобен для работы с коллекцией элементов, где важны операции добавления и удаления элементов в начале и в конце списка. Обычные списки делают это медленно, так как элементы приходится смещать, а deque оптимизирован под такие операции, выполняя их за O(1).from collections import deque
# Создаем deque и добавляем элементы
queue = deque([1, 2, 3])
queue.append(4) # добавляет 4 в конец
queue.appendleft(0) # добавляет 0 в начало
print(queue) # deque([0, 1, 2, 3, 4])
# Удаляем элементы
queue.pop() # удаляет последний элемент
queue.popleft() # удаляет первый элемент
print(queue) # deque([1, 2, 3])
———
Good coding
#python #short #list #libraries #deque #collections
Please open Telegram to view this post
VIEW IN TELEGRAM
Я славно поработал и написал 2 статьи посвященные алгоритму BFS (поиск в ширину) и алгоритму Дейкстры (поиск во взвешенных графах). Для меня лучший способ в чем то разобраться - это объяснить другим как это работает. Эти работы не исключение.
Краткая статистика
- 25 000 символов
- 3 600 слов
- 23 часа работы
———
Первая часть - Алгоритмы поиска путей на пальцах. Часть 1: Поиск в ширину
Первая часть - Алгоритмы поиска путей на пальцах. Часть 2: Алгоритм Дейкстры
———
Это всё что я использовал для написания материала и создания анимаций:
1. Алгоритмика — много материала об алгоритмах
2. Clippa — здесь можно доработать гифки
3. ChatGPT — все знают
4. Program4you — здесь можно создавать и анимировать графы
5. Теория графов — хороший материал для прочной базы
6. Двусторонняя очередь — статья о классе deque
7. Кучи и приоритетные очереди — статья о модуле heapq
———
Good coding
#python #info #algorithms #dijkstra #bfs #graphs #habr #articles
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Алгоритмы поиска путей на пальцах. Часть 1: Поиск в ширину
Давайте представим, что вы устроились много лет назад в 2GIS и вам выпала честь написать алгоритм, который будет прокладывать самый короткий автомобильный маршрут от точки A к точке B. Вы...
Когда самостоятельно изучаешь программирование, в какой-то момент сталкиваешься с кризисом, когда нужно двигаться дальше, а что конкретно делать не понятно.
Эта книга будет хорошим продолжением, если вы только закончили изучение базового синтаксиса и хотели бы повторить и закрепить материал.
Автор книги изложил материал следующим образом:
1. Каждая глава начинается с урока. Не расстраивайтесь если вы уже знакомы с материалом. Каждый учитель объясняет по своему и всегда есть возможность узнать что то новое.
2. После каждого урока автор подробно разбирает несколько задач (2 - 3). Советую сначала пробовать решать их самостоятельно, а потом сверяться с решением автора.
3. В конце каждой главы приведен список задач, которые вы сможете решить усвоив материал из пройденного урока.
———
Книга на Яндекс Книгах — здесь
Купить бумажную версию — здесь
Английская версия бесплатно — здесь
Русская версия бесплатно — здесь
———
Также оставлю свой репазиторий с решенными задачами. Их около 100 там. Сверяйтесь и изучайте, но не списывайте.
Репозиторий
———
#python #book #problems
Please open Telegram to view this post
VIEW IN TELEGRAM
books.yandex.ru
Читать «Python без проблем: решаем реальные задачи и пишем полезный код». Зингаро Д. в Яндекс Книгах
«Python без проблем: решаем реальные задачи и пишем полезный код» Зингаро Д. читать полную версию книги на сайте или в приложении электронной онлайн библиотеки Яндекс Книги.
Если вы вдруг решили написать в том или ином виде генератор паролей/токенов или других случайных значений, имеющих высокие требования к безопасности, не идите очивидным путем и не используйте модуль
random.Используйте модуль
secrets. Почуму? Если коротко, то random создан для симуляции, а результат работы довольно предсказуем. А secrets используется для генерации криптографически надёжных случайных чисел.Короткое объяснение — тут
Документаци — тут
———
#python #secrets #random
Please open Telegram to view this post
VIEW IN TELEGRAM
blog.mnislam.dev
Random or Secrets which module to use for critical information?
Random module vs Secrets module for security in python
Моя подборка, которая поможет, как мне кажется, найти работу в сфере аналитики данных. Я сейчас сам всё это изучаю. Базовый Python уже понятен, нужно было выбирать направление для роста.
1. Актуальный, англоязычный курс — FREE Data Analyst Bootcamp. Если плохо с английским, открывайте плейлист в Яндекс браузере и слушайте в переводе.
2. Подробная карта для изучения инструментов связанных с аналитикой данных — Data Analyst Roadmap
3. Репозиторий с большой подборкой общедоступных наборов данных — awesome-public-datasets
4. Статья на Хабр с подборкой наборов данных - 52 датасета для тренировочных проектов
5. Сайт с большим количество датасетов — kaggle-datasets
———
#python #resources #datasets #data_analyst
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
FREE Data Analyst Bootcamp!!
Take my Full Courses and Practice Technical Question on Analyst Builder: https://www.analystbuilder.com/
Link to Data Analyst Bootcamp Playlist: https://bit.ly/3HHqwcr
In this video we walk through the Free Data Analyst Bootcamp right here on my YouTube…
Link to Data Analyst Bootcamp Playlist: https://bit.ly/3HHqwcr
In this video we walk through the Free Data Analyst Bootcamp right here on my YouTube…
🔥3
Вы можете никогда не использовать tkinter напрямую, но есть библиотеки, которые используют его по умолчания. Например matplotlib — библиотека для визуализации графиков.
Сегодня столкнулся с такой ошибкой:
...
_tkinter.TclError: Can't find a usable init.tcl in the following directories:
...
paths
...
This probably means that Tcl wasn't installed properly.
В моем случае это произошло, потому что вместе с Git я поставил MinGW, который идет вместе с пакетом Git for Windows. А MinGW поставляется с библиотеками Tcl/Tk. Из-за этого возник конфликт в переменных среды. Как я понял, если Git устанавливается на ПК вперед Python, то такого не происходит.
1. Нажать win+i, что бы открыть настройки
2. Далее путь: Система — О системе — Дополнительные параметры системы — Переменные среды
3. Нажимаем создать в области системных переменных
4. Ввести название переменной:
TCL_LIBRARY5. Указать путь до папки. Что узнать путь, зайдите в диск, на который вы установили Python. Затем в поиске введите tlc. Найдите папку, которая находится в директории Python, а не в Git. В папке будут еще папки. Вам нужна с названием (на момент создания поста) tlc8.6.
В моем случае путь был такой:
C:\Users\Yastrebov\AppData\Local\Programs\Python\Python313\tcl\tcl8.6
6. Осталось сохранить, перезапустить IDE и если у вас была такая же проблема, то она должна решиться
———
#python #error #tlc #tkinter #matplotlib
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Представим что у на есть некоторый dataset c неопределенным количеством столбцов:
[..., 'Category', 'Region', 'Inventory Level', ...]
Задача: построить сводную таблицу (как на изображении), для отображения остатков (Inventory Level) во всех регионах для каждой категории и отобразить сумму остатков для каждой категории и каждого региона.
В Excel мы бы создали сводную таблицу, перетащили бы Category в область "Cтроки", Region в область "Столбцы", а Inventory Level в область "Значения".
import pandas as pd
df = pd.read_csv('retail_store_inventory.csv')
pivot_table = df.groupby(['Category', 'Region'])['Inventory Level'].sum().reset_index()
pivot_result = pivot_table.pivot(index='Category', columns='Region', values='Inventory Level')
pivot_result['Total'] = pivot_result.sum(axis=1)
pivot_result.loc['Total'] = pivot_result.sum(axis=0)
Dataset
Ссылка на набор данных
———
#python #pandas #data_analitycs #excel
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
data.rar
132.6 KB
В общем пытался устроится на должность аналитика данных в сеть магазинов, где я когда то поваром работал. Было бы забавно мне кажется. Так на любой вакансии, где есть пук про АЙ ТИ, конкуренция безумная, я решил не ограничиваться отправкой резюме.
Так как в вакансии было указано, что нужно знать pandas, я решил спарсить данные о продуктах с сайта и как раз с помощью pandas что то почистить, проанализировать. Бонусом сделал небольшую презентацию на 5 слайдов с не графиками и аналитикой.
В итоге даже не заслужил фразы "Мы одобрили другого кандидата, а ваше резюме отложили. Если вакансия снова откроется, то мы вам напишем".
Но никакого расстройства, прикольная практика вышла.
Репозиторий
Данные в прикрепе
———
#python #pandas #data_analitycs #resources #dataset
Please open Telegram to view this post
VIEW IN TELEGRAM