Python 创建lambda表达式以获得特定结果时遇到问题
我已经用python创建了一个脚本,使用BeautifulSoup解析一些html片段中的信息。当我使用列表理解时,它工作得很好。我的目标是使用Python 创建lambda表达式以获得特定结果时遇到问题,python,python-3.x,lambda,beautifulsoup,Python,Python 3.x,Lambda,Beautifulsoup,我已经用python创建了一个脚本,使用BeautifulSoup解析一些html片段中的信息。当我使用列表理解时,它工作得很好。我的目标是使用lambdaexpression执行相同的操作。我听说两个列表理解和lambda表达式可以相同地工作。然而,对于如何应用lambda函数来获得与使用列表理解相同的结果,我没有任何想法。在此方面的任何帮助都将不胜感激 以下是迄今为止我的代码: from bs4 import BeautifulSoup content=""" <td align=
lambda
expression执行相同的操作。我听说两个列表理解
和lambda表达式
可以相同地工作。然而,对于如何应用lambda
函数来获得与使用列表理解
相同的结果,我没有任何想法。在此方面的任何帮助都将不胜感激
以下是迄今为止我的代码:
from bs4 import BeautifulSoup
content="""
<td align="right">0.00 %</td>,
<td align="right">2.52</td>,
<td align="right">1.79</td>,
<td align="right">1.79 % </td>,
<td align="right">0.72</td>,
<td align="right">1.08 %</td>
"""
soup = BeautifulSoup(content,"lxml")
data = [item.text for item in soup.find_all("td")] #it is doing fine
# data = "wish to do the same like above using lambda"
print(data)
从bs4导入美化组
content=”“”
0.00 %,
2.52,
1.79,
1.79 % ,
0.72,
1.08%
"""
汤=BeautifulSoup(含量,“lxml”)
data=[item.text代表汤中的项目。find_all(“td”)]#一切正常
#data=“希望使用lambda执行与上述相同的操作”
打印(数据)
我能想到的最多的是使用映射应用lambda
:
map(lambda x: x.text,soup.find_all("td"))
这是Python3中的生成器表达式,因此可以对其进行迭代或对其进行list()
。正如在commons中提到的,映射
更像是Python创建者的事后想法,您可以通过在理解中用[]
替换()
来显式写出生成器表达式 我能想到的最多的是使用map
应用lambda
:
map(lambda x: x.text,soup.find_all("td"))
这是Python3中的生成器表达式,因此可以对其进行迭代或对其进行list()
。正如在commons中提到的,映射
更像是Python创建者的事后想法,您可以通过在理解中用[]
替换()
来显式写出生成器表达式 lambda不被认为是蟒蛇。列表理解是可读的。@Rahul,我并没有声称在我的帖子中说过这样的话。我也并没有要求任何东西。只是说说而已。你可以做任何你想做的事。lambda不被认为是蟒蛇。列表理解是可读的。@Rahul,我并没有声称在我的帖子中说过这样的话。我也并没有要求任何东西。只是说说而已。你可以做你想做的任何事。你是说x.next
还是x.text
?@shayan谢谢,修复了。令人惊奇的解决方案!!再加一个。我会在系统允许的情况下接受的。谢谢。@ Sayayn谢谢,但也考虑阅读关于Python的一些知识(以及其中的注释)。你是指<代码> X.Nex//Cord>还是<代码> X.TEX< /代码>?@沙扬谢谢,固定。令人惊讶的解决方案!!再加一个。我会在系统允许的情况下接受的。谢谢。@沙扬谢谢,但也考虑阅读关于Python的一些好的知识的答案(以及其中的评论)。