簡體   English   中英

循環遍歷的Pythonic方法

[英]Pythonic way to iterate through loops

我想更多地以Python方式實現以下代碼:

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')顯示了我的邏輯

for cls in ("odd", "even"):
    for rows in table.findAll('tr', class_=cls):
        for row in rows.findAll('td'):
            print row

也許:

for row in table.findAll('tr', attrs = {'class':'odd'}) + table.findAll('tr', attrs = {'class':'even'}):
    for cell in row.findAll('td'):
        print cell

從性能的角度來看,原始代碼會更好。 合並兩個列表確實會占用資源。

但是,除非您為Google scale編寫代碼,否則我同意這句話。

必須編寫程序供人們閱讀,並且只能偶然地使機器執行。
-Hal Abelson,計算機程序的結構和解釋

有多種方法可以做到這一點。 以您最容易理解的方式編寫代碼。 計算機可以找出細節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM