Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建lambda表达式以获得特定结果时遇到问题_Python_Python 3.x_Lambda_Beautifulsoup - Fatal编程技术网

Python 创建lambda表达式以获得特定结果时遇到问题

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=

我已经用python创建了一个脚本,使用BeautifulSoup解析一些html片段中的信息。当我使用列表理解时,它工作得很好。我的目标是使用
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的一些好的知识的答案(以及其中的评论)。