Источник: Nuances of Programming
Python — один из популярнейших языков, который активно используется в анализе данных и машинном обучении, при разработке ПО, в автоматизации и так далее. Такая популярность обусловлена простотой в использовании и лёгкостью в его освоении.
По этим же причинам не составит большого труда освоить 30 коротких фрагментов кодов, которые мы рассмотрим ниже. Попробуем сделать это за 30 секунд?
Строки
Анаграммы
Метод проверяет, являются ли анаграммами две строки. Анаграмма — это слово или набор символов, образованных перестановкой букв другого слова или набора символов. Причём каждая буква или символ используется только один раз.
from collections import Counterdef anagram(first, second):
return Counter(first) == Counter(second)
anagram("abcd3", "3acdb") # True
Палиндром
Проверяет, является ли строка палиндромом:
def palindrome(a):
return a == a[::-1]palindrome('mom') # Trueпамяти
Получение гласных строки
Получает гласные английского алфавита в строке:
def get_vowels(string):
return [each for each in string if each in 'aeiou']
get_vowels('foobar') # ['o', 'o', 'a']
get_vowels('gym') # []
Капитализация слов строки
Используйте title(), чтобы сделать заглавными первые буквы всех слов строки:
s = "programming is awesome"print(s.title()) # Programming Is Awesome
Декапитализация
Делает первую букву данной строки строчной:
Длина строки в байтах
А этот метод возвращает длину строки в байтах:
Склеивание n строк в одну
С помощью этого фрагмента можно записать строку n раз без использования циклов.
n = 2;
s ="Programming"; print(s * n); # ProgrammingProgramming
Объединение строк через разделитель
Этот код преобразует список строк в одну строку, вставляя указанный разделитель.
hobbies = ["basketball", "football", "swimming"]print("My hobbies are:") # My hobbies are:
print(", ".join(hobbies)) # basketball, football, swimming
Списки
Наличие дублей
Проверяет, есть ли в списке повторяющиеся значения, пользуясь тем, что set()содержит только уникальные элементы:
Очистка списка
Удаляет значения False, None, 0, "" из списка с помощью filter().
Разделение списка
Делит список на списки заданного размера.
def chunk(list, size):
return [list[i:i+size] for i in range(0,len(list), size)]
Объединение списка
Объединяет список аналогично [].concat(…arr) в JavaScript:
Упрощение списка
Выполняет сведение потенциально глубокого списка к списку проще с помощью рекурсии:
Перемешивание
Располагает элементы списка в произвольном порядке. Обратите внимание: shuffle работает в обычном порядке и возвращает None.
from random import shufflefoo = [1, 2, 3, 4]
shuffle(foo)
print(foo) # [1, 4, 3, 2] , foo = [1, 2, 3, 4]
Перечисления и списки
В этом фрагменте кода можно использовать перечисление для получения значений и индексов списков.
Самый повторяющийся элемент
Возвращает наиболее часто встречающийся элемент в списке:
def most_frequent(list):
return max(set(list), key = list.count)numbers = [1,2,1,2,3,2,1,4,2]
most_frequent(numbers)
Сравнения
Разница между объектами
Находит разницу между двумя итерируемыми объектами, сохраняя значения первого.
Разница между списками
Возвращает разницу между двумя списками после применения функции к каждому элементу обоих списков.
Цепочка сравнений
В одной строчке можно производить сравнения со всеми типами операторов:
a = 3
print( 2 < a < 8) # True
print(1 == a < 2) # False
Словари
Объединение словарей
Объединяет два словаря:
В Python 3.5 и более поздних версий это выглядит так:
def merge_dictionaries(a, b)
return {**a, **b}
a = { 'x': 1, 'y': 2}
b = { 'y': 3, 'z': 4}
print(merge_dictionaries(a, b)) # {'y': 3, 'x': 1, 'z': 4}
Преобразование списков в словарь
Преобразует два списка в словарь:
Значения по умолчанию для отсутствующих ключей
Получаем значение по умолчанию, если искомого ключа нет в словаре:
d = {'a': 1, 'b': 2}print(d.get('c', 3)) # 3
Трюки
Расчет времени выполнения
Выводит время выполнения кода:
Использование памяти
Этот фрагмент кода предназначен, чтобы узнать объём памяти, используемый объектом:
import sysvariable = 30
print(sys.getsizeof(variable)) # 24
Цепочка функций
Предоставляет возможность вызвать несколько функций в одной строке:
def add(a, b):
return a + bdef subtract(a, b):
return a - ba, b = 4, 5
print((subtract if a > b else add)(a, b)) # 9
Try else
elseможно использовать как часть блокаtry/except. Ветка else выполнится, если при выполнении никаких исключений не выброшено:
Калькулятор без if-else
Вот так можно написать простой калькулятор, не прибегая к условиям if-else:
Обмен значений
Действительно быстрый способ обмена двух переменных без третьей:
Транспонирование массива
Используется для транспонирования (поворота) 2D-массива:
array = [['a', 'b'], ['c', 'd'], ['e', 'f']]
transposed = zip(*array)
print(transposed) # [('a', 'c', 'e'), ('b', 'd', 'f')]
Это был краткий список методов, которые могут пригодиться в повседневной работе. Основой для большинства из них послужил этот GitHub репозиторий, где хранится множество других полезных фрагментов кода как на Python, так и на других языках.
Читайте также:
Читайте нас в телеграмме и vk
Перевод статьи Fatos Morina: 30 Helpful Python Snippets That You Can Learn in 30 Seconds or Less