import collections

#создаем пустой словарь
our_words = {}
#берем OrderedDict из коллекций и используем, чтобы значения в словаре не выводились рандомно
our_words= collections.OrderedDict(our_words)
#добавляем значения, чтобы они были "учтены"
our_words["Кот"]="мягкий"
our_words["Диван"]="сидеть"
our_words["машина"]="ездит"
our_words["корова"]="мычит"



dlina = len(our_words)
kluychi = []
znacheniya = []
#финальный словарь, он тоже Ordered, чтобы значения не вывелись рандомно
final_list={}
final_list=collections.OrderedDict(final_list)

#заполняем вспомогательные списки цифрами, чтобы не было "out of range"
for i in range(dlina):
    kluychi.append(i)
    znacheniya.append(i)


#заполняем списки с конца, беря значения словаря по порядку. то есть, первый элемент our_words - это последний элемент в kluchi и znacheniya
#второй элемент our_words - это предпоследний в cluchi и znacheniya
#то есть, получаем два параллельных списка заполненных с конца значениями из словаря our_words
schet = len(our_words)-1
for i in our_words:
    kluychi[schet]=i
    znacheniya[schet]=our_words[i]
    schet-=1

#заполняем наш "финальный" словарь ключами и значениями
#то есть, kluchi[i] возвращает значение ключа, например "кот", znachenie[i] возвращает например "мягкий"
#то есть, словарь принимает такой же вид, как и первый, но значения пишутся в обратном порядке, т.к. выше мы развернули списки
for i in range(dlina):
    final_list[kluychi[i]]=znacheniya[i]

print("Старый:", our_words)
print("Новый ", final_list)

    
result = input("enter")
