Vsakega programerski problem se loti tako, da najprej poglej kako bi to ti rocno naredil. Recimo pri tistih ribah prva naloga: obrnit moras kljuce in vrednosti v slovarju (s tem da so vrednosti seznami). Recimo eden izmed bolj enostavnih nacinov bi bil, da najprej razpises slovar v seznam parov. Zacnes s tem
{'mušica': {'krap', 'som'}, 'gosenica': {'postrv', 'ščuka'}, 'komar': {'podust', 'som'}}
In potem naredis to:
{('mušica','krap'), ('mušica','som'),('gosenica','postrv'),('gosenica','ščuka'),('komar','podust'),('komar','som')}
To je zdaj simetricen zapis, ki nasteje vse povezave med ribami in vabami. Zdaj samo vrstni red obrnes in zlozis nazaj v slovar.
Ta postopek zdaj prepisi v python.
Pri drugi podnalogi recimo najprej ugotovis, da ne rabis imen ribicev, tako da samo naredis mnozico vab, in potem gledas, ce imajo kaksen skupen element. Tukaj ti izredno prav pridejo vgrajene funkcije za presek mnozic (presek seznamov, in pogledas ce je prazen). Lahko gres tudi z zankami, in pogledas za vsak element posebej ce je notri, in najdes ribe, ki nimajo nobenega skupnega elementa.
Za tiste mnozice poglej dokumentacijo v
http://docs.python.org/2/library/stdtyp ... #frozenset
Torej, splosen namig: sledi postopku, ki bi ga uporabil na papirju, potem je samo stvar prevajanja v kodo, in v teh nalogah je en korak postopka pogosto kar 1-5 vrstic kode.