питон

Python: 10 лучших трюков, которые нужно знать в 2022 году

Овладейте этими экономящими время и эффективными приемами во время кофе

Изучение Python является необходимостью! 🔋

В настоящее время Python довольно популярен, в основном из-за его простоты и легкости в освоении.

Python, как и любой другой язык программирования, будет проще, если мы изучим способы Pythonic для выполнения задач. Я перечислил 10 советов и приемов Python, которые вы должны знать как пользователь Python.

Я сделал эту статью довольно короткой, чтобы вы могли закончить ее за чашечкой кофе и освоить самые полезные и экономящие время приемы Python.

Вы можете быстро перейти к своему любимому трюку, используя этот указатель.

· Check if all the elements in a list are same
· Remove Duplicates from a List
· Iterate over multiple lists simultaneously using zip()
· Merge 2 or more dictionaries
· Multiple conditions in a single if-statement
· Delete all items in the list
· Sort Dictionary by Value
· Access Dictionary Items
· Print string output using f-strings
· Regular Expressions — regex

Ладно, поехали…🚀

Проверьте, все ли элементы в списке одинаковы

Самый простой и Pythonic способ здесь — использовать структуру данных Python — Set.

В Python наборы, в отличие от списков, не могут иметь несколько вхождений одного и того же элемента и хранить неупорядоченные значения.

Это означает, что если все элементы в списке одинаковы, то преобразование его в набор приведет к набору только с одним элементом.

Как видите, все элементы в списке различны, поэтому длина результирующего набора будет равна 8. Следовательно, вывод False.

Когда вывод равен True, все элементы в списке будут одинаковыми. Посмотрите на пример ниже,

Вы можете более подробно изучить структуры данных Python здесь.

Удалить дубликаты из списка

Еще одним классическим вариантом использования свойств List-Set является дедупликация элементов списка.

Как я упоминал ранее, наборы в Python содержат только уникальные элементы. Следовательно, преобразование списка в набор удаляет все дубликаты из списка и сохраняет ровно один вид каждого элемента. ✔️

Как видно на рисунке выше, я сначала преобразовал new_list в набор для удаления дубликатов, а затем снова преобразовал этот набор set(new_list) в список, чтобы получить список, содержащий ровно одно вхождение каждого элемента new_list .

Вы можете прочитать больше об этом трюке в моем одном из трендовых постов.



Одновременно перебирать несколько списков, используя zip()

Обычно цикл for используется для перебора одного списка, однако для перебора нескольких списков без использования счетчика итераций функция zip() используется в цикле for.

По определению функция zip() в python используется для агрегирования элементов из нескольких итерируемых объектов поэлементно в итерацию кортежей.

например, использование функции zip() для двух списков, как в приведенном ниже примере, создает список кортежей.

Это свойство функции zip() можно использовать в цикле for для перебора нескольких итерируемых объектов (списков или словарей) в Python.

Просто это!

🚩 Примечание: функция zip() перестанет создавать кортежи элементов из предоставленных итераций, когда будет исчерпана самая маленькая или самая короткая итерация. например, если list_1 имеет 3 элемента, а list_2 имеет 2 элемента, the zip() вернет только 2 кортежа, и в результате цикл for будет выполнен только для 2 итераций.

Это ограничение zip() можно преодолеть с помощью функции zip_longest().

Объединить 2 или более словарей

Самый простой способ объединить два или более словарей — использовать метод update(), как показано в примере ниже:

Метод update() принимает в качестве аргумента другой словарь и объединяет содержимое этого переданного словаря в текущий словарь.

🚩 Однако метод update() изменяет исходный словарь, т. е. dict1 в приведенном выше примере обновляется элементами из dict2. Это не создает новый словарь с объединенными значениями из обоих словарей.

Поэтому другим простым решением является использование **kwargs.

Когда мы применяем ** к словарю, он расширяет содержимое словаря как набор пар ключ-значение. Короче говоря, он удаляет фигурные скобки { } вокруг пар ключ-значение. ✔️

Итак, **dict1 эквивалентно ‘first’: 10, ‘second’: 20, ‘third’: 30

Взгляните на приведенный ниже пример, чтобы узнать, как объединить два словаря с помощью **kwargs.

При объединении словарей с помощью **kwargs исходные словари остаются неизменными. 💯

Несколько условий в одном операторе if

Иногда вам нужно передать несколько условий в операторе if и запустить блок кода, если все или какое-либо условие истинно.

🚩 Если у вас есть одно или два условия, вы можете указать их в операторе if. Но когда вам нужно проверить 4 или более условий, оператор if также выглядит длинным и запутанным.

Но не беспокойтесь! Встроенные функции Python — all() и any() — помогут вам и сэкономят ваше время.

По определению, all() возвращает True, если выполняются все условия, а any() возвращает True, если выполняется хотя бы одно из условий.

Что вам нужно сделать, так это составить список Python всех условий, которые вы хотите проверить. И использовать,

1️⃣ all(list_of_conditions) : когда вы хотите проверить, все ли условия верны. то есть все условия находятся в логическом И.

например,

Поскольку все условия становятся истинными, выполняется блок кода в операторе if.

2️⃣ any(list_of_conditions), когда вы хотите проверить, верно ли какое-либо из условий. то есть все условия находятся в логическом ИЛИ, как указано ниже.

Поскольку только 3 из четырех условий истинны, выполняется кодовый блок под elif.

Таким образом, вы можете эффективно и четко передавать несколько условий в операторе if, не делая его многословным.

Удалить все элементы в списке

Элегантный способ удаления всех элементов в списке — использование нарезки вместе с ключевым словом del.

Исходя из основ индексации в списках, все элементы в списке можно выбрать с помощью оператора двоеточия (:), такого как list_name[:] .

Чтобы удалить все элементы из списка, вам просто нужно добавить ключевое слово del перед list_name[:], как показано ниже,

Таким образом, список очищается, а не удаляется полностью. Этот список может быть повторно заполнен новыми элементами.

Кроме того, вы также можете использовать метод .clear(), например new_list.clear(), чтобы очистить его. ✔️

⚙️ Это может быть очень полезно в проектах по автоматизации систем, где вам нужно сохранять позиции роботов в течение определенного времени и удалять их после использования, фактически не удаляя сам список. Это было очень полезно для меня на моей прошлой работе.

Сортировка словаря по значению

Словарь, как мы все знаем, будучи парой ключ-значение, по умолчанию может быть отсортирован на основе ключей. Однако иногда нам нужно отсортировать словарь на основе значений.

Словарь можно сортировать с помощью функции sorted, которая принимает ровно три аргумента — iterable, key, reverse, а с помощью аргумента key вы можете решить, как сортировать словарь.

На рисунке ниже показаны обе сортировки словаря по ключу, а также по значению.

По умолчанию сортировка выполняется в алфавитном или возрастающем порядке. Чтобы отсортировать словарь по убыванию, вы должны установить reverse = True в функции sorted. ♻️

Доступ к элементам словаря

В зависимости от того, к чему вы хотите получить доступ из приведенного ниже словаря, есть четыре метода.

Используйте .keys(), .values() и .items()🏆

Как следует из названия, .keys() и .values() можно использовать для доступа только к ключам и значения соответственно. В уже созданном словаре в приведенном выше примере

Извлечение ключей, значений и пар ключ-значение из словаря Python | Изображение автора

Как видно на рисунке выше, пару ключ — значение в виде кортежа можно извлечь с помощью .items().

Вы можете узнать больше об этой теме в этом интересном чтении.

Вывод строки с использованием f-строк

f-strings — это более простая реализация format(), которая используется для форматирования указанного значения и вставки его в заполнитель строки.

например,

name = 'Alex'
age = '20'
print('{} is {} years old'.format(name,age))
Output:
Alex is 20 years old

Две фигурные скобки в приведенном выше примере являются заполнителями для двух переменных — name и age.

Хотя это служит цели, .format() все же может быть довольно длинным, когда вы имеете дело с несколькими параметрами и более длинными строками.

Простое решение этой проблемы — f-строки. Такие f-строки имеют алфавит f в начале форматируемой строки и имеют несколько заполнителей {} внутри строки.

Тот же пример, что и выше, упрощен с использованием f-строк, как показано ниже.

name = 'Alex'
age = '20'
print(f'{name} is {age} years old')
Output:
Alex is 20 years old

Подробнее о f-строках можно прочитать здесь.

⚡️ F-строки Python обеспечивают более быстрый, читаемый, более лаконичный и менее подверженный ошибкам способ форматирования строк в Python.

Регулярные выражения — регулярное выражение

Этот список самых полезных трюков будет неполным без регулярных выражений. 💯

Одним из наиболее часто встречающихся типов данных является текст или строка, и нет ничего более мощного, чем регулярное выражение, для эффективного анализа этих данных.

Регулярные выражения (регулярные выражения) — это последовательности символов, которые используются для извлечения текстовых шаблонов из данных. Используя регулярное выражение, вы можете сопоставлять входные данные с определенными шаблонами и заменять их другими данными с минимальным кодом.

Чтобы воспользоваться этой возможностью, вам нужно просто импортировать пакет как import re, прежде чем вы начнете его использовать.

Вот краткий пример того, как это работает.

В этом примере я хотел найти все двузначные числа, присутствующие в text. Поэтому я использовал текстовый шаблон [0–9][0–9] и в команде re.findall(“[0–9][0–9]”, text) искал text все вхождения этого шаблона. Вот как он вернул только двузначное число — 10.

Я нашел этот отличный ресурс для изучения и практики регулярных выражений.

Вот и все!!

Я надеюсь, что вы закончили эту статью за чашечкой кофе и нашли ее освежающей и полезной. Я использую Python в течение последних 4 лет, и я обнаружил, что эти приемы довольно экономят время и эффективны в течение определенного периода времени.

Вы можете изучить материалы Medium, Став участником Medium. Поверьте мне, это стоит всего 5 долларов в месяц, и вы можете получить неограниченный доступ к историям среднего и ежедневного интересного дайджеста Medium. Конечно, небольшая часть ваших гонораров поступает мне в качестве поддержки. 🙂

Не забудьте Подписаться на мою рассылку, чтобы получать первые копии моих статей.

Спасибо, что прочитали!