一小段代码看不懂,请教大神
def lookup(d, key):
    found = False
    for child in d:
        if found : return child.text
        if child.tag == 'key' and child.text == key :
            found = True
    return None

stuff = ET.parse(fname)
all = stuff.findall('dict/dict/dict')
print('Dict count:', len(all))
for entry in all:
    if ( lookup(entry, 'Track ID') is None ) : continue

    name = lookup(entry, 'Name')
    artist = lookup(entry, 'Artist')
    album = lookup(entry, 'Album')
    count = lookup(entry, 'Play Count')
    rating = lookup(entry, 'Rating')
    length = lookup(entry, 'Total Time')

    if name is None or artist is None or album is None :
        continue
def lookup(d, key):
    found = False
    for child in d:
        if found : return child.text
        if child.tag == 'key' and child.text == key :
            found = True
    return None
        这一段看不明白,请教大神。

2个回答

方法有两个形参,一个是d(一个list),一个是key(string 或者 int 或者其它类型)。进入循环前先把found的值改为false,然后开始遍历d内的成员。如果d的某一个成员的tag属性值为“key”(字符串),并且它的text属性值等于形参key。那么就会使found置为true,在下个循环开始的时候会将下一个d成员的text属性的值作为返回值。如果一直不存在匹配,则遍历完d的所有成员后返回None。

soar3033
soar3033 artist“等项目进行查找,如果有这些项目则对应的name、artist等临时变量就会被赋值为true。 这段程序应该不全,下面应该还有发现name、artist、album都不为None时的处理逻辑。
3 个月之前 回复
soar3033
soar3033 下面的for循环对all进行遍历的时候,假如lookup(entry, 'Track ID')一直没有匹配就会一直continue直到结束。如果有匹配那么continue就不会执行,然后会对这一项下面的“NAME”、“”
3 个月之前 回复
benny817
benny817 明白了,感谢分享!
3 个月之前 回复
benny817
benny817 那底下不是会一直返回‘track ID’吗?
3 个月之前 回复

如果d的某一个成员的tag属性值为“key”(字符串),并且它的text属性值等于形参key。那么就会使found置为true,在下个循环开始的时候会将下一个d成员的text属性的值作为返回值。

benny817
benny817 明白了,感谢分享!
3 个月之前 回复
benny817
benny817 那底下不是会一直返回‘track ID’吗?
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

3
初学es6,ES6 语法中 yield 关键字什么意思啊?百度了一大堆,还是看不懂,哪位大神用白话解释一下
2
pycharm中出现name 'reponse' is not defined错误怎么解决,请教大神,急????
1
小白一枚,请教大神js模板templatejs,我这段代码为什么没有效果?拜谢。。。。
1
我想请教虹膜识别定位后的问题,matlab代码,详细解释的,本人新手,光代码看不懂,谢谢,求教大神?
1
请教大神如何让iframe框架自适应高度?
2
我是刚刚大一刚刚入门的学生,老师布置的作业搞不懂请教各位大神RecycleView中部分控件的显示和隐藏.如图
1
两轮平衡车simulink仿真看不懂求大神讲解?
3
VS2017,如何使用C++进行读取Excel中的数据,本人绝对的小白,连如何创建MFC都不太会,求各位大神指点
2
请教大神们,这段代码哪里错了?
1
请教大神MYSQL GBK转换UTF8编码的问题
1
Centos7下键盘无法输入字母数字 回车退格都正常 是怎么回事 请教大神
1
本人小白这一段代码看不明白,请教大神
1
看小程序项目有段不懂的代码请前辈指点
2
请教大神们,为什么这段代码啥也运行不出来,也不报错
1
这个问题不太明白,请教大神解释一下
1
请教大神们,这个看不明白啥意思
0
跪求一段 VBA 或 python、R、Matlab 数据分析代码
1
Pointnet用python3.5跑代码遇到问题,请各位大神帮忙看看
0
信号量一小段学习代码,看不懂输出,求教