python 函数部分

#初始化

def init(data):

  data['first']={}

  data['middle']={}

  data['last']={}

#查看条件

def lookup(data,label,name):

  return data[label].get(name)

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.append(full_name)

  else:

    data[label][name]=[full_name]

'''

store函数执行以下步骤。

(1)使用参数data和full_name进入函数,这两个参数呗设置为函数在外部获得的一些值

(2)通过拆分full_name,得到一个叫做names的列表

(3)如果names的长度为2,(只有首名和末名),那么插入一个空字符串作为中间名

(4)强字符串'first'、'middle'和'last'作为元祖存储在labels中

(5)使用zip函数联合标签和名字,对于每一个(label,name)对,进行以下处理:

  获得属于给定标签和名字的列表

  将full_name添加到列表中,或者插入一个需要的新列表

>>>MyNames={}

>>>init(MyNames)

>>>store(MyNames,'Magnus Lie Hetland')

>>>lookup(MyNames,'Middle','Lie')

['Magnus Lie Hetland']

可以工作,再试试

>>>store(MyNames,'Robin Hood')

>>>store(MyNames,'Robin Locksley')

>>>lookup(MyNames,'first','Robin')

['Robin Hood','Robin Locksley']

>>>store(MyNames,'Mr.Gumby')

>>>lookup(MyNames,'middle','')

['Robin Hood','Robin Locksley','Mr.Gumby']

可以看到,如果默写人的名字、中间名或姓相同,那么结果中会包含所有这些人的信息

上一篇:HOOK自绘原理 good


下一篇:JAVA多线程提高六:java5线程并发库的应用_线程池