我是Python和BeautifulSoup的新手。我试图通过将lambda表达式重写为函数来加深对lambda表达式的理解,反之亦然。有人可以帮我理解如何使用BeautifulSoup库为Python重写下面的lambda表达式吗?
bsObj.findAll(lambda tag:len(tag.attrs) == 2)
我尝试了以下操作,但它不起作用:
def twoTags(tag):
if len(tag.attrs) == 2:
return tag.attrs
bsObj.findAll(twoTags(tag))
我收到一条错误消息,指出未定义全局名称“tag”。 谢谢!
答案 0 :(得分:0)
您希望将函数传递给find_all
,并且您的函数需要返回一个布尔值。总而言之,您的代码应如下所示:
def twoTags(tag):
return len(tag.attrs) == 2:
bsObj.findAll(twoTags)