Найти в Дзене
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 год назад
@dataclass __dict__ В декораторе @dataclass можно посмотреть все атрибуты класса через вызов метода __dict__ (выводится коллекция всех атрибутов данного класса). Для удобства вывода информации можно использовать функцию pprint, которая структурирует вывод JSON файлов.
1 год назад
@dataclass Декоратор @dataclass из библиотеки dataclasses позволяет создавать классы ООП по упрощенному синтактическому шаблону. По сравнению со стандартным синтаксисом по созданию класса @dataclass позволяет сократить код. Очень удобно. Если распечатать объект @dataclass через print, то будет выведена понятная информация об объекте (например, Book(title='Black stone', author='Ivan Smirnov', year=2023)). Если распечатать объект класса, который был создан по стандартному синтаксису, то будет выведен тип объекта (например, <__main__.Client object at 0x000002C63766B490>). В этом случае для класса надо отдельно прописывать метод def __str__.
1 год назад