['<tr><td>%s</td><td>%s</td></tr>' % (name, score) for name, score in d.iteritems()]
['<tr><td>%s</td><td>%s</td></tr>' % (name, score) for name, score in d.iteritems()]
的意思
['<tr><td>%s</td><td>%s</td></tr>' % (name, score) for name, score in d.iteritems()]
的意思
2015-02-19
舉報
2015-04-27
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
gtr = '<tr><td>%s</td><td>%s</td></tr>'?
tds = [gtr% (name, score) for name, score in d.iteritems()]
print '<table>'
print '<tr><th>Name</th><th>Score</th><tr>'
print '\n'.join(tds)
print '</table>'
2015-02-24
先把'<tr><td>%s</td><td>%s</td></tr>' % (name, score)部分用gtr表示,
則此代碼可以表示為[gtr for name, score in d.iteritems()]
我們先看gtr部分,字符串可以通過?%?進行格式化,用指定的參數替代?%s,所以gtr表示一個字符串。舉個例子,如果name=Mike,score=90,那么gtr='<tr><td>Mike</td><td>90</td></tr>'。
再看整個這代碼,這是個利用for循環迭代dict d的復雜表達式,取出的name,score將會一一帶入gtr,構成一個元素為字符串的list。