Zacznijmy od tego, że tego się nie da czytać. Używaj zmienne i unikaj range() w pętlach. Nie wiem też czemu zamieniasz dicty na dict()y..
A ogólnie to problem jest pewnie tu:
if rzecz == 'a' or 'b' or 'c':
Bo to jest równoważne temu:
if (rzecz == 'a') or 'b' or 'c': # zawsze prawdziwe
Prawdopodobnie powinno być tak...
if rzecz in ('a', 'b', 'c'):
Ale patrząc na ten kod, zgaduję że to sam pomysł jest zły (sprawdzasz czy pierwszy klucz jest poprawny, po czym od razu zapisujesz? Wygląda dziwnie.).