On Friday February 5 2010 12:29:30 Owain Clarke wrote:
> What a helpful forum - much thanks to all who've commented.  Seems to be
> a bit of a consensus here about dictionaries.  Let me just restate my
> reluctance, using examples from Spanish.
> 
> esperar = to hope
> esperar = to wait

You could have a dict that maps: word -> list of translations
d = {"esperar":["to hope", "to wait"]}

> tambien = too [i.e. also]
> demasiado = too [i.e. excessive]

> 
> So there are repeats in both languages.  I would like to end up with a
> file which I can use to generate flash cards, either to or from English,
> and I suppose I want the flexibility to have 1 word with 1 definition.

You should possibly have an object for each term:

class LangEntity(object):
        def __init__(self, word_en, word_es, 
                 definition_en=None, definition_es=None, image=None):
                self.word_en = word_en
                self.word_es = word_es
                self.definition_en = definition_en
                self.definition_es = definition_es
                self.image = image

        #TODO: def __repr__(self) so you can see what you are doing.

all_entities = [LangEntity("too", "tambien"), 
                LangEntity("to hope", "esperar")]


Then you can create dictionaries that map from the words to the LangEntity 
objects:

def make_en_dict(all_ents):
        res_dict = {}
        for ent in all_ents:
                key = ent.word_en
                ent_list = res_dict.get(key, [])
                ent_list.append(ent)
                res_dict[key] = ent_list
        return res_dict

en_dict = make_en_dict(all_entities)


WARNING: I didn't try the code, I just typed it into the mail client! So there 
might be bugs!

For useful ways how to model terms of a dictionary, maybe look at these 
projects, and talk to their developers.
http://edu.kde.org/parley/
http://www.voxhumanitatis.org/content/ambaradan-owm2-storage-engine
http://www.omegawiki.org/Meta:Main_Page


Eike.
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to