蟒蛇表达

发布于 2024-09-17 07:07:18 字数 185 浏览 3 评论 0 原文

我是Python新手,在阅读BeautifulSoup教程时,我不明白这个表达式“[x for x in titles if x.findChildren()][:-1]”我不明白?你能解释一下吗

titles = [x for x in titles if x.findChildren()][:-1]

I am new in python, and while reading a BeautifulSoup tutorial, I didn't understand this expression "[x for x in titles if x.findChildren()][:-1]" that i didn't understand? can you explain it

titles = [x for x in titles if x.findChildren()][:-1]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

雪化雨蝶 2024-09-24 07:07:18

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

>>> a=[1,2,3,4,5]
>>> a[:-1]
[1, 2, 3, 4]

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

[x for x in titles if x.findChildren()]

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

To start with [:-1], this extracts a list that contains all elements except the last element.

>>> a=[1,2,3,4,5]
>>> a[:-1]
[1, 2, 3, 4]

The comes the first portion, that supplies the list to [:-1] (slicing in python)

[x for x in titles if x.findChildren()]

This generates a list that contains all elements (x) in the list "titles", that satisfies the condition (returns True for x.findChildren())

日暮斜阳 2024-09-24 07:07:18

这是一个列表理解

它几乎相当于:

def f():
    items = []
    for x in titles:
        if x.findChildren():
            items.append(x)
    return items[:-1]
titles = f()

Python 中我最喜欢的功能之一:)

It's a list comprehension.

It's pretty much equivalent to:

def f():
    items = []
    for x in titles:
        if x.findChildren():
            items.append(x)
    return items[:-1]
titles = f()

One of my favorite features in Python :)

柠檬心 2024-09-24 07:07:18

如果 EXP,则 X in Y 的表达式 f(X) 是 列表理解 它会给你一个包含结果的生成器(如果它在 () 内部)或列表(如果它在 [] 内部)仅当 EXP 对于该 X 为 true 时,才对 Y 的每个元素评估 f(X)

在您的情况下,如果元素有一些子元素,它将返回一个包含 titles 中每个元素的列表。

结尾的 [:-1] 表示列表中除最后一个元素之外的所有内容。

The expression f(X) for X in Y if EXP is a list comprehension It will give you either a generator (if it's inside ()) or a list (if it's inside []) containing the result of evaluating f(X) for each element of Y, by only if EXP is true for that X.

In your case it will return a list containing every element from titles if the element has some children.

The ending [:-1] means, everything from the list apart from the last element.

陌路终见情 2024-09-24 07:07:18

它称为 for 理解表达式。它只是构造一个包含 x 列表中所有标题的列表,当调用 findChildren 函数时返回 true。最后的语句从列表中减去最后一个语句。

It's called a for comprehension expression. It is simply constructing a list of all titles in the x list which return true when the findChildren function is called upon them. The final statement substracts the last one from the list.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文