예제 #1
0
def f_rec(n):
    dict = OrderedDict({0: 0, 1: 1, 2: 2})
    if n in dict.keys():
        return dict[n]
    else:
        for i in range(3, n + 1):
            current_value = dict[i - 1] + dict[i - 3]
            dict.popitem(last=False)
            dict[i] = current_value
        return dict[n]
예제 #2
0
# сортировка по значению
b = {'cat': 5, 'dog': 2, 'mouse': 4}
new_b = OrderedDict(sorted(b.items(), key=lambda x: x[1]))
print(new_b)
# OrderedDict([('dog', 2), ('mouse', 4), ('cat', 5)])

# изменение порядка в отсортированном словаре
new_b.move_to_end('mouse')
print(new_b)
# OrderedDict([('dog', 2), ('cat', 5), ('mouse', 4)])

new_b.move_to_end('mouse', last=False)
print(new_b)
# OrderedDict([('mouse', 4), ('dog', 2), ('cat', 5)])

new_b.popitem()
print(new_b)
# OrderedDict([('mouse', 4), ('dog', 2)])

new_b.popitem(last=False)
print(new_b)
# OrderedDict([('dog', 2)])

new_b['cow'] = 1
print(new_b)
# OrderedDict([('dog', 2), ('cow', 1)])     добавляется всегда в конец

new_b['dog'] = 8
print(new_b)
# OrderedDict([('dog', 8), ('cow', 1)])     значение поменялось, а сортировка нет