为了账号安全,请及时绑定邮箱和手机立即绑定

复杂表达式

d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }

def generate_tr(name, score):

    if score < 60:

        return '<tr><td>%s</td><td style="color:red">%s<td></tr>' % (name , score)

    return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)


tds = [generate_tr(name, score) for name, score in d.iteritems()]

print '<table border="1">'

print '<tr><th>Name</th><th>Score</th><tr>'

print '\n'.join(tds)

print '</table>'

中的  tds = [generate_tr(name, score) for name, score in d.iteritems()]  这句是怎么理解的?

d.iteritems() 是将dict转化为包含tuple的一个list    generate_tr(name, score)是调用前面的函数 但是 对于加了 for 这个英语逻辑关系是怎么理解的?  是先理解for后面的 d.iteritems() 是将dict转化为包含tuple的一个list中的name, score 传入自定义函数里面?执行return 后面的返回值?

正在回答

2 回答

tds = [generate_tr(name, score) for name, score in d.iteritems()] 

这句话首先要理解generate_tr(name, score)  这个定义的函数是什么意义

这个函数的意思 就是对一个(名字,分数)这样一个整体  判断分数小于60的时候

返回的表格变成红色  就是这个意思


然后tds = [generate_tr(name, score) for name, score in d.iteritems()] 这个语句就很简单了

就是一个简单的for循环 ,将 d这个list 里面的 内容(名字:分数)全都输入到generate_tr(name, score)这个函数里面判断一下

return '<tr><td>      %s         </td><td>             %s           </td></tr>' % (name, score) 

 

这个&(name,score) 就是对 语句里面两个 %s格式输入的  输出   

简单的来讲。。就是 print 'My name is %s I love %s'%(Tom,Dog)

嗯 

3 回复 有任何疑惑可以回复我~
#1

慕沐4974640 提问者

这样子就明白了 非常感谢你的帮助
2017-04-09 回复 有任何疑惑可以回复我~

说清楚哪里不理解啊。。。兄弟

0 回复 有任何疑惑可以回复我~
#1

慕沐4974640 提问者

tds = [generate_tr(name, score) for name, score in d.iteritems()] 这句是怎么理解的? return '<tr><td>%s</td><td>%s</td></tr>' % (name, score) 还有这句后面加% (name, score) 是什么意思?
2017-04-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

复杂表达式

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信