Rub*_*ens 3 python lambda for-loop beautifulsoup
是否有任何非显式for方法可以n在对象上调用成员时间?
我正在考虑一些map/reduce/lambda方法,但我想不出办法做到这一点 - 如果有可能的话.
只是添加上下文,我正在使用BeautifulSoup,我正在从html表中提取一些元素; 我提取了一些元素,然后是最后一个元素.
因为我有:
# First value
print value.text
# Second value
value = value.nextSibling
print value.text
# Ninth value
for i in xrange(1, 7):
value = value.nextSibling
print value.text
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何lambda方法 - 或其他 - 允许我这样做:
# Ninth value
((value = value.nextSibling) for i in xrange(1, 7))
print value.text
Run Code Online (Sandbox Code Playgroud)
PS:不,这种for方法没有任何问题,除了我真的很喜欢单线解决方案,这在我的代码中非常适合.
我对循环有强烈的偏好,但你可以使用reduce:
>>> class Foo(object):
... def __init__(self):
... self.count = 0
... def callme(self):
... self.count += 1
... return self
...
>>> a = Foo()
>>> reduce(lambda x,y:x.callme(),range(7),a)
<__main__.Foo object at 0xec390>
>>> a.count
7
Run Code Online (Sandbox Code Playgroud)