• Как перебрать список словарей в одном цикле?

    SergMagpie
    @SergMagpie
    Учюсь я, не волшебник еще
    Посмотри модуль pprint. Он такое делает.
    Ответ написан
    Комментировать
  • Как для заданной матрицы, определить количество строк матрицы, которые имеют более одного общего элемента?

    SergMagpie
    @SergMagpie
    Учюсь я, не волшебник еще
    import random
    from functools import reduce
    
    # создаем тренировочный полигон
    the_matrix = []
    for _ in range(100):
        row = []
        for _ in range(100):
            row.append(random.randint(-10000, 10000))
        the_matrix.append(row)
    the_num = random.randint(0, 100)
    # print(the_matrix)
    # print(the_num)
    
    # пишем человеческую функцию для проверки
    
    
    def counter(matrix: list, num_of_string: int) -> int:
        count_string = 0
        for string in matrix:
            count_elem = 0
            for item in matrix[num_of_string]:
                if item in string:
                    count_elem += 1
                    if count_elem > 1:
                        count_string += 1
                        break
        return count_string
    
    
    # изображаем решение Вашей задачи
    count = len(list(filter(lambda k: len(k) > 1, list(
        map(lambda i: list(filter(lambda j: j in i, the_matrix[the_num])),
            the_matrix)))))
    
    # сравниваем результаты
    print(count)
    print(counter(the_matrix, the_num))
    # в условии не понятно, что делать с повторяющимися элементами,
    # тут они задваиваются, если их нужно будет убрать, задачка упростится
    Ответ написан
    Комментировать
  • Зачем нужны дескрипторы в python?

    SergMagpie
    @SergMagpie
    Учюсь я, не волшебник еще
    Пруф тут
    В общем, дескриптор - это атрибут объекта с «поведением привязки», доступ к атрибуту которого был переопределен методами в протоколе дескриптора. Этими методами являются __get __ (), __set __ () и __delete __ (). Если какой-либо из этих методов определен для объекта, он называется дескриптором. Поведение по умолчанию для доступа к атрибуту заключается в получении, установке или удалении атрибута из словаря объекта. Например, a.x имеет цепочку поиска, начинающуюся с .__ dict __ ['x'], затем введите (a) .__ dict __ ['x'] и продолжайте через базовые классы типа (a), исключая метаклассы. Если искомое значение является объектом, определяющим один из методов дескриптора, тогда Python может переопределить поведение по умолчанию и вместо этого вызвать метод дескриптора. То, где это происходит в цепочке приоритетов, зависит от того, какие методы дескриптора были определены. Дескрипторы - это мощный протокол общего назначения. Это механизм, лежащий в основе свойств, методов, статических методов, методов класса и super (). Они используются в самом Python для реализации новых классов стилей, представленных в версии 2.2. Дескрипторы упрощают базовый C-код и предлагают гибкий набор новых инструментов для повседневных программ Python.
    Ответ написан
    Комментировать
  • Как преобразовать строку в имя переменной?

    SergMagpie
    @SergMagpie
    Учюсь я, не волшебник еще
    a = 0
    peremennaya={}
    while a < 10:
    string = 'sos' + str(a)
    peremennaya[string] = X
    #(тут строка, которую мы достаем из string и преобразуем в имя переменной) = X
    a += 1
    P. S. Первый класс, вторая четверть
    Ответ написан
    Комментировать