python学习笔记
来源:互联网 发布:移动80端口 编辑:程序博客网 时间:2024/06/07 15:25
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=lookup(data,label,name)
if people:
people.append(full_name)
else:
data[label][name]=[full_name]
Mynames={}
init(Mynames)
store(Mynames,'a b c')
print(lookup(Mynames,'middle','b'))
上面代码中
if people:
people.append(full_name)
else:
data[label][name]=[full_name]
令人费解,实际上在for循环中,每执行一次循环,就产生一个(label,name)组,lookup函数将这一组参数在数据结构里面查询,如果可以查询到,即people返回一个列表(注意!这个列表和数据结构中的列表是一样的,修改这个列表,数据结构中的列表也会改变!!!),说明数据结构中已经有一个和label相同的全名了,这时,使用people.append(full_name)就可以将新增的全名加入到数据结构中的列表去了。如果查询不到,即people返回none,就添加一个新的键加入到数据结构中,并把全名赋值给它。
阅读全文
0 0
- 【python】:python学习笔记
- Python学习笔记-Python起步
- Python学习笔记-Python基础
- Python学习笔记-Python对象
- Python基本概念--Python学习笔记
- Python学习笔记:Python函数
- python学习笔记-python安装
- Python学习笔记--Python基础
- 【Python】python基础学习笔记
- python学习笔记3
- Python学习笔记
- Boost.Python学习笔记
- python学习笔记1
- python学习笔记2
- python学习笔记(2)
- Python学习笔记 Module
- Python学习笔记.
- python学习笔记(1)
- LeetCode-69-Sqrt(x) Python要用math.sqrt()
- ==与equals的区别
- JMP二次开发方法研究
- Go 语言中格式化时间
- systemctl命令
- python学习笔记
- 关于3N+1问题的一点探索
- Mahmoud and Ehab and the xor CodeForces
- 实验一线性表的基本操作实现及其应用
- cuda编程
- java设计模式---工厂模式
- java多线程&线程池
- vue-音频组件
- 2017年9月20日22:45:58