TypeVarTuple
Допустим, мы создаём функцию
TypeVarTuple представляет собой произвольный кортеж потенциально разных типов. Полезно, если функция имеет дело только с первым элементом кортежа, и нам «разрешит» любые оставшиеся типы.
Допустим, мы создаём функцию
convert_first_int()
, которая возвращает кортеж практически неизменным, только первый элемент приводит к целочисленному типу.TypeVarTuple представляет собой произвольный кортеж потенциально разных типов. Полезно, если функция имеет дело только с первым элементом кортежа, и нам «разрешит» любые оставшиеся типы.
Проверка существования переменной с помощью «моржового» оператора
Если мы объявили две переменные, но не задали любой из них значение, то с помощью оператора
Во втором случае заполнена только одна из переменных, но программа отработает без ошибки.
Если мы объявили две переменные, но не задали любой из них значение, то с помощью оператора
:=
(Walrus Operator) можно спасти программу от падения и добавить обрабатывающую логику. В первом случае, в переменные name1, name2 мы ничего не записали, значит, программа зайдет в блок else.Во втором случае заполнена только одна из переменных, но программа отработает без ошибки.
Поиск отличий в списках
Допустим, у нас есть две длинные строки, и мы хотим найти отличия.
Можно использовать комбинацию
Допустим, у нас есть две длинные строки, и мы хотим найти отличия.
seq1
и seq2
в сниппете ниже – это последовательности генов.Можно использовать комбинацию
zip()
и enumerate()
. Первая сопоставит символы с одинаковыми индексами, а вторая – присвоит каждой паре символов порядковый номер (всего 24). Чтобы найти отличающиеся символы, достаточно сравнить символы попарно в цикле for.