复杂表达式
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 后面的返回值?