Найти в Дзене
from itertools import combinations С помощью функции combinations из библиотеки itertools можно создать из списка итерируемый объект, в котором будут сформированы все возможные сочетания элементов из первоначального списка. Количество элементов из исходного списка, которые нужно объединить в уникальные комбинации, задается отдельно как аргумент функции. Например, если мы хотим из списка arr1 = [1, 2, 3, 4, 5] создать все возможные комбинации из трех элементов, то мы можем использовать функцию combinations(arr1, 3)
1 год назад
Задача: как определить, можно ли из заданных трех отрезков сформировать треугольник?
Задача: нам даны три отрезка a, b, c (в данных переменных указаны длины отрезков). Как определить, можно ли из отрезков a, b, c составить треугольник? Надо проверить выполнение следующего правила: из трех отрезков можно сформировать треугольник только тогда, когда для всех сочетаний отрезков сумма двух отрезков больше, чем третий. a + b > c b + c > a c + a > b Исходные данные для примеров: Пример №1 (можно сформировать треугольник): a1 = 4 b1 = 5 c1 = 3 Пример №2 (нельзя сформировать треугольник):...
207 читали · 1 год назад
Как посмотреть все методы для определенного типа данных. Для этого необходимо использовать дандер метод ".__dict__". Чтобы распечатать результат данной команды, и этот результат выглядел структурированно, то можно воспользоваться функцией pprint (из библиотеки pprint). Например, если мы хотим посмотреть все методы для типа данных "строка" (string), то необходимо ввести следующую команду: from pprint import pprint pprint(str.__dict__) Для типа данных список (list): from pprint import pprint pprint(list.__dict__) Для типа данных словарь (dictionary): from pprint import pprint pprint(dict.__dict__) Это очень удобно. Например, помнишь, что есть определенный метод, но не помнишь буквально как он пишется. Тогда можно воспользоваться такой подсказкой.
1 год назад
*args Это позиционные (безымянные) аргументы в функции. Допустим, в нашу функцию может быть передано разное количество аргументов. Тогда мы в аргументе нашей функции прописываем (*args), а потом можем обращаться к этим аргументам args. args внутри функции будет представлять из себе кортеж (насколько я понял) и по нему можно будет итерироваться.
1 год назад
@dataclass сравнение объектов класса (__eq__) Если мы хотим сравнить два объекта одного класса на равенство, то @dataclass уже поддерживает встроенное сравнение, когда сравниваются все атрибуты объектов. При использовании стандартных классов (без декоратора @dataclass) операция сравнения объектов была бы недоступна. Ее потребовалось бы специально прописывать через метод __eq__. Дополнительно в @dataclass можно прописать собственное условия, как сравнивать между собой объекты. Например, можно сравнивать объекты не по всем атрибутам, а только по какому-то одному атрибуту. В этом случае надо прописать данное условие в методе __eq__. В примере №1 сравниваются два объекта класса, созданного через @dataclass, через логику сравнения по умолчанию (сравниваются между собой все атрибуты объектов и если какие-нибудь атрибуты отличались, то мы получили бы False). В примере №2 мы прописали метод __eq__ и отразили в нем логику, что объекты сравниваются между собой только на базе атрибута name. Соответственно не учитываются различия по другим атрибутам. И, получается, что несмотря на то, что объекты имеют разные атрибуты region и level, они равны между собой (True).
1 год назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала