Списки
1) Chunk
Разбиение массива на меньшие списки указанного размера. Для создания списка желаемого размера используется range, а заполняется список при помощи map.
1
2
3
4
5
6
7
|
frommathimportceil
defchunk(arr,size):
returnlist(
map(lambdax:arr[x*size:x*size+size],
list(range(0,ceil(len(arr)/size)))))
|
Пример:
2) Compact
Удаление ложных значений (False, None, 0, и «») из списка при помощи filter().
Пример:
3) Count_by
Этот кусок кода на Python группирует элементы списка и возвращает количество элементов в каждой группе.
Используется map() для сопоставления значений списка со значениями функции. За каждую итерацию счетчик увеличивается.
Пример:
4) Сount_occurences
Считает количество повторений заданного значения.
Используется функция reduce из встроенных модулей functools для увеличения счетчика каждый раз, когда вы сталкиваетесь с определенным значением внутри списка.
Пример:
5) deep_flatten
Выравнивание списка при помощи рекурсии. Используется list.extend() вместе с пустым массивом (result) и функция spread для сглаживания каждого элемента списка.
Пример:
6) difference
Возвращает разницу между двумя массивами. Создает set из b и сохраняет только те значения, которые не содержатся в b.
Пример:
7) difference_by
Возвращает разницу между двумя списками, после применения функции к обоим спискам. Создает set, применяя fn к каждому элементу в b, затем использует сочетание fn и a, чтобы сохранить только значения, не содержащиеся в ранее созданном set.
Пример:
8) insertion_sort
На самом базовом уровне алгоритм сортировки вставкой содержит логику смещения и вставки элементов для сортировки неупорядоченного списка любого размера. Способ, который реализует вставку элементов, делает сортировку очень интересной!
Пример:
9) shuffle
Рандомизирует порядок значений списка, возвращая новый список. Использует алгоритм Фишера-Йейтса для изменения порядка элементов списка.
Пример:
10) spread
Заимствует [].concat(…arr) из Javascript. Сглаживает список (не глубоко) и возвращает новый список.
Пример:
11) zip
Создает список элементов, группируя их на основании позиции в оригинальном списке. Используется max вместе с list comprehension для получения длины самого длинного списка в аргументах. В качестве длины lists используется значение fill_value. По умолчанию значение fill_value равно None.
Пример:
Математика
Продолжаем список фрагментов кода на Python реализацией некоторых математических функций.
1) average
Возвращает среднее от двух и более чисел. Происходит деление на len(args) суммы всех элементов args. Второй аргумент 0.0 используется для операций с плавающей точкой в python2.
Пример:
2) factorial
Вычисляется факториал числа.
Используется рекурсия. Если num меньше или равно 1, возвращается 1, а иначе – произведение num и factorial из num — 1. Сработает исключение, если num будет отрицательным или числом с плавающей точкой.
Пример:
3) gcd
Вычисляется наибольший общий делитель между двумя или более числами / списками.
В helperGcdfunction используется рекурсия. Базовый случай, когда y равно 0. В этом случае возвращается x. В противном случае возвращается y и остаток от деления x/y. Используется reduce из встроенного модуля functools.
Пример:
4) lcm
Возвращает наименьшее общее кратное из двух или более чисел. Используется формула greatest common divisor (GCD) и lcm(x,y) = x * y / gcd(x,y) для определения наименьшего общего кратного. Формула GCD использует рекурсию, а также reduce из встроенного модуля functools.
Пример:
5) max_n
Возвращает n максимальных элементов из списка. Если n больше или равно длине списка, возвращается исходный список, отсортированный в порядке убывания.
Используется list.sort() в сочетании с функцией deepcopy из встроенного модуля copy, чтобы создать клон списка и отсортировать его в порядке возрастания, а затем list.reverse(), чтобы отсортировать по убыванию. Для получения указанного количества элементов используется [:n]. Второй аргумент n опускается, чтобы получить одноэлементный массив.
Пример:
6) min_n
Возвращает n минимальных элементов из списка. Если n больше или равно длине списка, возвращается исходный список, отсортированный в порядке возрастания.
Используется list.sort() в сочетании с функцией deepcopy из встроенного модуля copy, чтобы создать клон списка и отсортировать его в порядке возрастания, а затем list.reverse(), чтобы отсортировать по убыванию. Для получения указанного количества элементов используется [:n]. Второй аргумент n опускается, чтобы получить одноэлементный массив.
Пример:
Строки
Последние фрагменты кода на Python на тему работы со строками.
1) byte_size
Возвращает длину строки в байтах. Заданная строка кодируется utf-8, а потом находится ее длина.
Пример:
2) capitalize
Делает первую букву строки заглавной.
Делает первую букву строки заглавной, а затем добавляет ее к остальной части строки. Параметр lower_rest опускается, чтобы сохранить остальную часть строки нетронутой, или для нее устанавливается значение true, чтобы преобразовать в нижний регистр.
Пример:
3) capitalize_every_word
Делает первую букву заглавной каждого слова строки. Используется str.title.
Пример:
4) count_vowels
Возвращает number гласных в string. При помощи регулярного выражения, вычисляется количество гласных (A, E, I, O, U) в строке.
Пример:
5) decapitalize
Делает первую букву строки строчной, а затем добавляет ее к остальной части строки. Параметр upper_rest опускается, чтобы сохранить остальную часть строки нетронутой, или для нее устанавливается значение true, чтобы преобразовать в верхний регистр.
Пример:
6) is_lower_case
Преобразует строку в верхний регистр при помощи метода str.lower() и сравнивает ее с оригиналом.
Пример:
7) is_upper_case
Преобразует строку в нижний регистр при помощи метода str.upper() и сравнивает ее с оригиналом.
Пример:
8) palindrome
Возвращает True если строка является палиндромом, иначе False.
Преобразует строку str.lower() и использует re.sub для удаления не алфавитно-цифровых символов. Потом сравнивает новую строку с реверсивной строкой.
Пример:
http://vanar.md/ro/oferte-si-reduceri
Источник: https://proglib.io/p/code-python/