我目前正在关注一个使用BeautifulSoup从HTML页面提取信息的教程,而当我关注时,我意识到我不理解这一步。代码是:
period_tags = seven_day.select(".tombstone-container .period-name")
periods = [pt.get_text() for pt in period_tags]
periods
我对第二行感到困惑。我知道方括号用于列表,但是我不知道“ pt”来自何处,并且我也不熟悉“ for”和“ in”。
有人可以帮助我理解吗?希望我提供了足够的上下文。
答案 0 :(得分:3)
这称为列表理解。参见https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions
这就像一个反向的for循环,它使您可以从可迭代(以及条件(可选))创建列表。以文档示例为例,如果您要创建数字<10的平方的列表,则标准方法是
squares = []
for x in range(10):
squares.append(x**2)
但是列表理解语法允许您编写
squares = [x**2 for x in range(10)]
或者只是偶数
squares = [x**2 for x in range(10) if x%2==0]