【问题标题】:for/in loop help, and help understandingfor/in 循环帮助,帮助理解
【发布时间】:2018-12-21 17:33:45
【问题描述】:

我目前正在学习一个使用 BeautifulSoup 从 HTML 页面中提取信息的教程,当我学习时,我意识到我没有理解一个步骤。代码是:

period_tags = seven_day.select(".tombstone-container .period-name")
periods = [pt.get_text() for pt in period_tags]
periods

我对第二行感到困惑。我知道括号用于列表,但我不明白“pt”的来源,而且我对“for”和“in”也相当陌生。

有人可以帮我理解吗?希望我提供了足够的背景信息。

【问题讨论】:

  • 请在以后格式化您的代码,在行前使用四个空格,而不是>(表示引号)

标签: python beautifulsoup for-in-loop


【解决方案1】:

这称为列表推导。见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]

【讨论】:

  • 感谢您的评论和链接!我想我现在明白了
  • @hntrandrew 您可能应该花一些时间阅读 blue_note 链接的官方 Python 教程。它将使您更容易理解 BeautifulSoup 教程。另见What tutorial should I read?
  • @hntrandrew:谢谢,如果有帮助请接受回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-07
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
相关资源
最近更新 更多