Terry Reedy wrote: > astral orange wrote: > >> As far as the program. I did add print statements such as print >> (MyNames) and got back: >> >> {'middle': {}, 'last': {'Smith': ['John Larry Smith']}, 'first': {}} > > Hmmm, as I understood the code, either that should be ... 'last': {} ... > before the first store(), as you seem to be thinking below, or after the > first store(), > > {'middle': {'Larry': ['John Larry Smith'], > 'last': {'Smith': ['John Larry Smith'], > 'first': {'John' " ['John Larry Smith']} > > or the same with [['John','Larry','Smith']] for each entry (do not > remember exactly what was stored. Maybe a typo.
That's a bug in the store() function # as posted def store(data, full_name): names = full_name.split() if len(names) == 2: names.insert(1, '') labels = 'first', 'middle', 'last' for label, name in zip(labels, names): people = lookup(data, label, name) if people: people.append(full_name) else: data[label][name] = [full_name] # what was probably intended def store(data, full_name): names = full_name.split() if len(names) == 2: names.insert(1, '') labels = 'first', 'middle', 'last' for label, name in zip(labels, names): people = lookup(data, label, name) if people: people.append(full_name) else: data[label][name] = [full_name] Peter -- http://mail.python.org/mailman/listinfo/python-list