python表达式

Ayo*_* M. 2 python list-comprehension

我是python的新手,在阅读BeautifulSoup教程时,我不明白这个表达"[x for x in titles if x.findChildren()] [: - 1]"我不明白?你能解释清楚吗?

titles = [x for x in titles if x.findChildren()][:-1]
Run Code Online (Sandbox Code Playgroud)

pyf*_*unc 5

从[:-1]开始,这将提取一个包含除最后一个元素之外的所有元素的列表.

>>> a=[1,2,3,4,5]
>>> a[:-1]
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

第一部分,将列表提供给[:-1](在python中切片)

[x for x in titles if x.findChildren()]
Run Code Online (Sandbox Code Playgroud)

这将生成一个列表,其中包含列表"titles"中的所有元素(x),它们满足条件(对于x.findChildren()返回True)