Python inline for if:有没有更好的方法来编写它?

时间:2015-01-05 19:52:13

标签: python

在Python中编写一些用于Web爬网的代码时,我的要求类似于:

vals = [x.get_text().strip() for x in tds[0].find_all('tr') if len(x.get_text().strip()) > 0]

get_text()和strip()方法是否被评估了两次?有没有更好的方法来写这个?

由于

1 个答案:

答案 0 :(得分:2)

您可以使用filter删除空字符串。

vals = list(filter(None, [x.get_text().strip() for x in tds[0].find_all('tr')]))