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

时间:2018-04-22 14:15:14

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

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

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

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

我想知道上述复杂陈述试图说的是什么, 如何将loop和if语句组合在一起 我怎样才能自己做出这样的陈述。

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

帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

写作:

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

答案 1 :(得分:1)

这是一个python list comprehension