In [3]:
rotate = lambda lst, n: lst[n:] + lst[:n]

In [4]:
rotate([1, 5, 7, 3, 5, 2], 2)


Out[4]:
[7, 3, 5, 2, 1, 5]

In [5]:
range(4, 26, 2)


Out[5]:
[4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24]

In [6]:
a = rotate(range(4, 26, 2), 4)
a


Out[6]:
[12, 14, 16, 18, 20, 22, 24, 4, 6, 8, 10]

In [7]:
a[:len(a)//2]


Out[7]:
[12, 14, 16, 18, 20]

In [44]:
def special_min(lst):
    if len(lst) == 1:
        return lst[0]
    mid = (len(lst)-1) // 2
    if lst[mid] > lst[-1]:
        return special_min(lst[mid+1:])
    elif lst[0] >= lst[mid]:
        return special_min(lst[:mid+1])
    else:
        return lst[0]

In [45]:
special_min(a)


Out[45]:
4

In [46]:
special_min([2])


Out[46]:
2

In [50]:
special_min([5, 5])


Out[50]:
5

In [48]:
special_min([5, 3])


Out[48]:
3

In [51]:
special_min([3, 5])


Out[51]:
3

In [52]:
special_min([5, 5, 5])


Out[52]:
5

In [57]:
special_min([5, 5, 3])


Out[57]:
3

In [56]:
special_min([3, 5, 1])


Out[56]:
1

In [58]:
special_min([1, 3, 5])


Out[58]:
1

In [59]:
special_min([5, 1, 3])


Out[59]:
1

In [60]:
special_min([5, 5, 5, 5])


Out[60]:
5

In [61]:
special_min([5, 5, 3, 4])


Out[61]:
3

In [62]:
special_min([5, 5, 7, 2])


Out[62]:
2

In [63]:
special_min([3, 5, 1, 2])


Out[63]:
1

In [65]:
special_min([1, 3, 5, 8])


Out[65]:
1

In [66]:
special_min([5, 1, 3, 4])


Out[66]:
1

In [ ]: