>>> def init(data):
data['first'] = {}
data['middle'] = {}
data['last'] = {}
>>> def lookup(data, label, name):
return data[label].get(name)
>>> def store(data, fullname):
names = fullname.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(fullname)
else:
data[label][name]=[fullname]
init函数用于初始化数据,英文名字包含first,middle,last三个单词;
lookup函数用于查找名字,通过label(取值范围是first,middle,last),name参数代表的是label的具体单词;
store函数用于存储名字字典;
执行情况:
>>> mynames={}
>>> init(mynames)
>>> store(mynames, 'xu jia li')
>>> store(mynames, 'xu li')
>>> lookup(mynames, 'first', 'xu')
['xu jia li', 'xu li']