Задача №1 Определить функцию list_max(L), которая возвращает максимальный элемент непустого списка

In [1]:
from __future__ import print_function, unicode_literals, division
In [2]:
def list_max(L):
    ''' Найти максимальный элемент непустого списка'''
    m = L[0]
    for i in L:
        if i>m:
            m = i
    return m
In [3]:
L = [1, 4, 9, 5, 2, 19, 5, 7]
print(list_max(L))
19

Задача Определить функцию 'max_negative' для нахождения наибольшего отрицательного значения в списке. Если отрицательны значений нет, то вернуть 'none'.

In [4]:
def max_negative(L):
    mi = -1000
    for i in L:
        if i>mi:
            if i<0:
                mi = i
    if mi == -1000:
        return 'none'
    else:
        return mi
In [5]:
L = [1, 4, 9, 5, -2, -19, 5, 7]
print(max_negative(L))
-2

Задача. Расширить класс Node, добавив в него дочерние узлы. Для этого использовать атрибут children. Определить метод 'append' для добавления в список дочерних узлов заданного узла. Определить метод 'delete' для удаления дочернего узла с индексом 'i'.

In [6]:
class NestedNode:
    def __init__(self, label, value, children):
        # Необходимо вызвать метод инициализации родителя.
        self.label = label
        self.value = value
        self.children = children
        children = []
    def __repr__ (self):
         return "NestedNode(%r,%r, %r)" % (self.label, self.value, self.children)
    #
    def update_value(self, val):
        self.value = val
    def append (self, child):
        self.children.append(child)
    def delete (self, i):
        self.children.pop(i)
In [7]:
repr(NestedNode)
Out[7]:
"<class '__main__.NestedNode'>"
In [8]:
nd1 = NestedNode('a', 1.0, [])
print(nd1)
NestedNode('a',1.0, [])
In [9]:
nd2 = NestedNode('b', 2.0, [])
print(nd2)
NestedNode('b',2.0, [])
In [10]:
nd3 = NestedNode('c', 3.0, [])
print(nd3)
NestedNode('c',3.0, [])
In [11]:
nd2.append (nd1)
print(nd2)
NestedNode('b',2.0, [NestedNode('a',1.0, [])])
In [12]:
nd3.delete (0)
print(nd3)
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-12-839ca80b9286> in <module>()
----> 1 nd3.delete (0)
      2 print(nd3)

<ipython-input-6-b23c77630296> in delete(self, i)
     14         self.children.append(child)
     15     def delete (self, i):
---> 16         self.children.pop(i)

IndexError: pop from empty list
In [ ]: