python - for/in循环帮助,帮助理解

标签 python beautifulsoup for-in-loop

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

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

我对第二行感到困惑。我知道括号用于列表,但我不明白“pt”来自哪里,而且我对“for”和“in”也相当不熟悉。

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

最佳答案

这称为列表理解。请参阅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]

关于python - for/in循环帮助,帮助理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51323376/

相关文章:

python - 我的 python 正在从另一个文件调用另一个函数而不显式导入它

python - 属性错误 :'NoneType' 对象没有属性 'parent'

arrays - Swift 使用 for-in 循环替换数组中的字符串

javascript - 为什么 "for..in"循环中的数值数组索引的类型被视为字符串?

swift - 如何跳过 for-in 循环的迭代(Swift 3)

python - Pandas Groupby TimeGrouper 并应用

python - 从 pandas 的数据框中提取唯一值和计数

python - 在遍历可变容器(例如列表)时更改 python 不可变类型

python - 从html中提取数组元素

python - 解析嵌入的CSS beautifulsoup