python - 包含 if 语句和 for 循环的单个语句

标签 python for-loop if-statement list-comprehension

我正在阅读 pathlib 模块;并发现了这个:

[x for x in p.iterdir() if x.is_dir()]

其中 p 是 Path 对象,上面一行列出了该目录下的所有子目录。

我想知道上面那个复杂的陈述想表达什么, for 循环和 if 语句如何组合在一起 以及我怎样才能自己做出这样的陈述。

我也想知道为什么它包含在 [] 中。

帮助将不胜感激。

最佳答案

写作:

lst = [x for x in p.iterdir() if x.is_dir()]

具有相同的效果:

lst = []
for x in p.iterdir():
    if x.is_dir():
        lst.append(x)

它被称为 list comprehension .

关于python - 包含 if 语句和 for 循环的单个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49966914/

相关文章:

c - 结果,While 循环无法开始忽略 if 语句和条件

python - 正则表达式 : re. findall() for set of all alphabetic words

python - 在带有 ";"的文本之间划分标签

python - 即使手动安装所有依赖项后,也无法使用 pip 安装 Seaborn

javascript - For 语句使用 This 与 jQuery Each?

java - for循环中的计数器

python - 使用first_project.urls中定义的URLconf,Django尝试了这些URL模式,按顺序:

java - 用 Java 数组中的特殊字符替换用户输入中的元音

python - 当变量在python中不再改变时如何退出for循环?

BASH 脚本期待,当我需要其他的时候