Сортировка словаря по значениям
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента
Подписывайтесь на канал 👉@pythonofff
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента
key
функции sorted
для указания функции, которая будет вызываться на каждом элементе до сравнения.Подписывайтесь на канал 👉@pythonofff
Списковые включения.
В python можно заменить громоздкие циклы, которые используются для заполнения списков. Самый простой пример использования списковых включений представлен в первом примере.
В примере 2 показано как можно добавить немного математики.
Вы даже можете использовать свои функции, как в примере 3.
Ну и куда без условного оператора? Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
В python можно заменить громоздкие циклы, которые используются для заполнения списков. Самый простой пример использования списковых включений представлен в первом примере.
В примере 2 показано как можно добавить немного математики.
Вы даже можете использовать свои функции, как в примере 3.
Ну и куда без условного оператора? Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Нахождение наиболее частых элементов списка
Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком
Метод
Подписывайтесь на канал 👉@pythonofff
#collections #counter
Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком
Counter
из библиотеки collections
.Метод
Counter.most_common(x)
возвращает x
кортежей, в которых первое значение – элемент, а второе – количество его повторений. Подписывайтесь на канал 👉@pythonofff
#collections #counter
Получаем срез из бесконечного генератора
Допустим, мы хотим получить какой-то конечный список элементов из бесконечного генератора. Что нам для этого понадобится?
Для начала создадим сам генератор
Чтобы получить желаемый срез, импортируем модуль
Подписывайтесь на канал 👉@pythonofff
Допустим, мы хотим получить какой-то конечный список элементов из бесконечного генератора. Что нам для этого понадобится?
Для начала создадим сам генератор
fib
, уже немного знакомый вам по посту, где мы использовали lru_cache
, правда там была рекурсивная функция. Этот генератор позволяет (за неимением другого слова) "генерировать" числа из последовательности Фибоначчи.Чтобы получить желаемый срез, импортируем модуль
itertools
, в котором уже есть удобная функция islice
, позволяющая осуществить срез генератора fib. Подписывайтесь на канал 👉@pythonofff
Функция zip
Функция
Подписывайтесь на канал 👉@pythonofff
#функции #zip
Функция
zip
создаёт итератор, который комбинирует элементы нескольких списков. Это позволяет осуществлять параллельный обход списков в циклах for
или, например, выполнять параллельную сортировку. Подписывайтесь на канал 👉@pythonofff
#функции #zip
Функции all и any.
Названия этих функций говорят сами за себя. Функция
Подписывайтесь на канал 👉@pythonofff
Названия этих функций говорят сами за себя. Функция
all
проверяет все ли элементы последовательности истинны. А функция any
проверяет наличие хотя бы одной истинны. Посмотреть пример в онлайн редакторе. Подписывайтесь на канал 👉@pythonofff
Свап значений переменных.
Бывают ситуации, когда нужно поменять значения переменных местами. И чтобы не захламлять код временными переменными, можно воспользоваться данным способом (внимание на 16 строку).
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Бывают ситуации, когда нужно поменять значения переменных местами. И чтобы не захламлять код временными переменными, можно воспользоваться данным способом (внимание на 16 строку).
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Легкая проверка на анаграммность.
Самым быстрым способом проверить, не являются ли строки анаграммами, будет через класс
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Самым быстрым способом проверить, не являются ли строки анаграммами, будет через класс
Counter
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Функция reduce
Модуль
Таким образом, в примере выше
Подписывайтесь на канал 👉@pythonofff
#функции #reduce
Модуль
functools
позволяет хорошо раскрыть функциональные возможности Python. Например, в functools
есть интересная функция reduce
, которая позволяет «сжимать» данные, применяя последовательно функцию и запоминая результат.Таким образом, в примере выше
reduce
умножает 1 на 2, затем результат этого умножения на 3 и так далее. Подписывайтесь на канал 👉@pythonofff
#функции #reduce
Вывод значения по умолчанию для отсутствующего ключа словаря
Обращение к несуществующему ключу словаря вызывает исключение. Избежать этого можно, вызывая метод
#codeexample
При создании собственного типа данных на основе словарей обратите внимание на метод
Подписывайтесь на канал 👉@pythonofff
Обращение к несуществующему ключу словаря вызывает исключение. Избежать этого можно, вызывая метод
get
. В указанном случае метод выдает None (по умолчанию) или заданное значение аргумента.#codeexample
d = {'a':1, 'b':2}
print(d.get('c'))
print(d.get('c', 3))
# На выходе:
None
3
При создании собственного типа данных на основе словарей обратите внимание на метод
__missing__
для возвращения аргумента при отсутствии ключа:
class MyDict(dict):
def _missing_(self, key):
return key
D = MyDict(a=1, b=2)
print(D)
print(D['a'])
print(D['c'])
# На выходе:
{'a': 1, 'b': 2}
1
c
Подписывайтесь на канал 👉@pythonofff
Искусственная нейронная сеть с нуля на Python c библиотекой NumPy
В туториале показано, как с нуля построить искусственную нейронную сеть на Python с помощью библиотеки NumPy. Сеть будет классифицировать изображения из датасета Fruit360.
Подробнее
Подписывайтесь на канал 👉@pythonofff
В туториале показано, как с нуля построить искусственную нейронную сеть на Python с помощью библиотеки NumPy. Сеть будет классифицировать изображения из датасета Fruit360.
Подробнее
Подписывайтесь на канал 👉@pythonofff
Транспонирование двумерного массива данных
Чтобы поменять местами строки и столбцы матрицы, созданной с помощью встроенных типов данных, воспользуйтесь функцией
Также, прошу вас реакциями проголосовать какой стиль скриншотов с кодом вам больше нравится. Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Чтобы поменять местами строки и столбцы матрицы, созданной с помощью встроенных типов данных, воспользуйтесь функцией
zip
Также, прошу вас реакциями проголосовать какой стиль скриншотов с кодом вам больше нравится. Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Вирус локер на Python и Tkinter
Локер – популярный вид вирусов, который блокирует компьютер, и чаще всего злоумышленники просят что-либо взамен на разблокировку. Обычно локер еще шифрует все файлы на компьютере, но мы такого делать не будем.
Подробнее
Подписывайтесь на канал 👉@pythonofff
Локер – популярный вид вирусов, который блокирует компьютер, и чаще всего злоумышленники просят что-либо взамен на разблокировку. Обычно локер еще шифрует все файлы на компьютере, но мы такого делать не будем.
Подробнее
Подписывайтесь на канал 👉@pythonofff
Назначение функций по условию
Многие из вас знакомы с тернарным оператором, позволяющим записать простое условное выражение с
Интерпретатор выполняет выражение
Но оказывается, тернарный оператор можно использовать не только для переменных, но и для функций.
Подписывайтесь на канал 👉@pythonofff
Многие из вас знакомы с тернарным оператором, позволяющим записать простое условное выражение с
if
:A = Y if X else Z
Интерпретатор выполняет выражение
Y
, если объект X
– True
, и Z
, если X
– False
.Но оказывается, тернарный оператор можно использовать не только для переменных, но и для функций.
Подписывайтесь на канал 👉@pythonofff
Красивый вывод
Мы очень часто отлаживаем код и пользуемся функцией print. Вывод в одну строку не всегда удобен. К примеру, когда мы делаем запрос серверу и получаем огромный json.
Встроенный модуль pprint поможет нам навести красоту. С каждым новым вложением он делает дополнительный отступ и вывод всегда радует глаз.
Вот параметры, которые принимает pprint.pprint:
object - объект форматирования,
stream=None - поток форматированного вывода,
indent=1 - отступ последующего уровня вложенности,
width=80 - ширина экрана печати,
depth=None - показывать уровней вложенности,
compact=False - компактное форматирование,
sort_dicts=True - сортировка словаря перед форматированием,
Мы даже можем переопределить стандартную функцию print написав
Подписывайтесь на канал 👉@pythonofff
Мы очень часто отлаживаем код и пользуемся функцией print. Вывод в одну строку не всегда удобен. К примеру, когда мы делаем запрос серверу и получаем огромный json.
Встроенный модуль pprint поможет нам навести красоту. С каждым новым вложением он делает дополнительный отступ и вывод всегда радует глаз.
Вот параметры, которые принимает pprint.pprint:
object - объект форматирования,
stream=None - поток форматированного вывода,
indent=1 - отступ последующего уровня вложенности,
width=80 - ширина экрана печати,
depth=None - показывать уровней вложенности,
compact=False - компактное форматирование,
sort_dicts=True - сортировка словаря перед форматированием,
Мы даже можем переопределить стандартную функцию print написав
print = pprint.pprint
Выше приведен пример кода. Вы можете самостоятельно поэкспериментировать с модулем. Подписывайтесь на канал 👉@pythonofff
Функция map
Привет, крайне часто начинающие программисты изобретают велосипеды при работе с коллекциями. Избежать часть таких ситуаций поможет знание
На вход принимает два обязательных аргмумента: функция-обработчик и итерируемый объект. Суть
Обратите внимание, в примере на картинке мы не пишем скобки у функции
Подписывайтесь на канал 👉@pythonofff
Привет, крайне часто начинающие программисты изобретают велосипеды при работе с коллекциями. Избежать часть таких ситуаций поможет знание
map
.На вход принимает два обязательных аргмумента: функция-обработчик и итерируемый объект. Суть
map
’a заключается в том, что он применяет переданную функцию к каждому элементу последовательности. А возвращает так называемый map-объект, который в дальнейшем можно конвертировать в обычный список и не только. Обратите внимание, в примере на картинке мы не пишем скобки у функции
add_five
при вызове map
– это означает то, что мы передаем объект функции, а не результат её выполнения. Подписывайтесь на канал 👉@pythonofff
Узнать все о функции
Современные редакторы кода всегда помогут правильно написать функцию, а некоторые даже их параметры. Но что делать, если нужно узнать точно описание функции, методы или прочитать документацию?
Для всех этих действий существует две функции
Очень удобно использовать
С помощью
Подписывайтесь на канал 👉@pythonofff
Современные редакторы кода всегда помогут правильно написать функцию, а некоторые даже их параметры. Но что делать, если нужно узнать точно описание функции, методы или прочитать документацию?
Для всех этих действий существует две функции
dir()
и help()
. Первая возвращает список всех доступных для функции методов. Вторая возвращает текстовую документацию.Очень удобно использовать
dir()
когда не знаешь, как точно пишется метод.С помощью
help()
можно узнать все об объекте и его методах даже без подключения к интернету. Подписывайтесь на канал 👉@pythonofff
Копирование словарей и других объектов
Новички часто допускают такую ошибку при создании копии списка:
Почему так происходит?
Об этом — в завтрашнем посте. Пока что расскажу, как этого избежать:
У списка существует специальный метод
Но подобное работает не всегда! Если имеется множество вложенных списков, то надо сделать полное копирование импортировав модуль
Подписывайтесь на канал 👉@pythonofff
Новички часто допускают такую ошибку при создании копии списка:
lst2 = lst1
При работе с одним из словарей оказывается, что изменяются оба. Почему так происходит?
Об этом — в завтрашнем посте. Пока что расскажу, как этого избежать:
У списка существует специальный метод
copy()
, который нужен как раз для таких случаев. Но подобное работает не всегда! Если имеется множество вложенных списков, то надо сделать полное копирование импортировав модуль
copy
и воспользовавшись методом deepcopy()
. Подписывайтесь на канал 👉@pythonofff
Как объединить все элементы списка Python в одну строку?
Советую пользоваться первым способом. Малое количество строк кода и его работоспособность - одно из главных качеств хорошего кода. Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Советую пользоваться первым способом. Малое количество строк кода и его работоспособность - одно из главных качеств хорошего кода. Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Как копировать файлы из одной папки в другую на Python?
Библиотека под названием
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Библиотека под названием
shutil
включает в себя несколько полезных функций для создания копий объектов на жестком диске. Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Присвоение первого непустого значения из ряда
Следующая инструкция присвоит первый непустой (имеющий истинное значение) объект из множества объектов
Подписывайтесь на канал 👉@pythonofff
Следующая инструкция присвоит первый непустой (имеющий истинное значение) объект из множества объектов
A
, B
и С
. Или None
, если все предыдущие объекты окажутся пустыми. Подписывайтесь на канал 👉@pythonofff