我想用更多的pythonic方式实现以下代码:
odd_rows = table.findAll('tr', attrs = {'class':'odd'}) #contain all tr tags
even_rows = table.findAll('tr', attrs = {'class':'even'})
for rows in odd_rows: #rows equal 1 <tr> tag
rows.findAll('td') #find all the <td> tags located in that one <tr> tag
for row in rows.findAll('td'): #find one <td> tag
print row #print that <td> tag
for rows in even_rows:
rows.findAll('td')
for row in rows.findAll('td'):
print row
行row.findAll('td')
显示我的逻辑
答案 0 :(得分:3)
for cls in ("odd", "even"):
for rows in table.findAll('tr', class_=cls):
for row in rows.findAll('td'):
print row
答案 1 :(得分:2)
也许:
for row in table.findAll('tr', attrs = {'class':'odd'}) + table.findAll('tr', attrs = {'class':'even'}):
for cell in row.findAll('td'):
print cell
从性能角度来看,您的原始代码更好。合并两个列表确实会使用资源。
但是,除非您为Google规模编写代码,否则我同意此引用。
必须编写程序供人们阅读,并且只能偶然让机器执行 - Hal Abelson,计算机程序的结构和解释
有多种方法可以做到这一点。以您认为最易读的方式编写代码。计算机可以弄清楚细节。