names=input('请输入拼音全名:')
storage=dict()
#初始化
def init(data):
data['first']={}
data['second'] = {}
data['third'] = {}
return data
#获取姓名列表
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','second','third'
for label,name in zip(labels,names):
people = lookup(data, label, name)
if people:
people.append(full_name)
else:
data[label][name]=full_name
init(storage) #局部对值修改生效,对变量重新赋值无效
store(storage,names)
print(lookup(storage,'first','yi'))
请输入拼音全名:yi yang qianxi
yi yang qianxi
Process finished with exit code 0
调用函数给局部传参的时候,对这个参数的值作出修改外部的值生效,在局部对形参进行重新赋值并对值进行修改不会影响外部的值
不return的话返回的是个none对象,只要是对值进行修改,可以不用return返回值