Python 列表语法澄清中的条件语句

Python 列表语法澄清中的条件语句,python,Python,我在找东西,发现了这个: subfolders = [ f.path for f in os.scandir(x) if f.is_dir() ] 我以前从未见过这种类型的条件语句 在=符号右侧,您将这种类型的条件语句称为什么?只是问一下,让我知道谷歌应该做什么 另外,如果我想用另一种格式写等价物,它会像这样吗 subfolders = [] x = "c:\\Users\\my_account\\AppData\\Program\\Cache" for f in os

我在找东西,发现了这个:

subfolders = [ f.path for f in os.scandir(x) if f.is_dir() ]
我以前从未见过这种类型的条件语句

=
符号右侧,您将这种类型的条件语句称为什么?只是问一下,让我知道谷歌应该做什么

另外,如果我想用另一种格式写等价物,它会像这样吗

subfolders = []

x = "c:\\Users\\my_account\\AppData\\Program\\Cache"

for f in os.scandir(x):
     if f.isdir():
          print(f.x)

这两条语句是否相同?

无法将代码放入注释中,但下面是对代码的一个小改动,以创建等效的输出:

subfolders = []
for f in os.scandir(path):
     if f.is_dir():
          subfolders.append(f.path)
下面是在交互式python中对我起作用的确切内容:

Python 3.7.10(默认,2021年3月24日,16:34:34)
关于达尔文的[Clang 12.0.0(Clang-1200.0.32.29)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>
>>>导入操作系统
>>>子文件夹=[]
>>>对于os.scandir('.')中的f:
...   如果f.是_dir():
...     子文件夹。追加(f.path)
...
>>>子文件夹
['.'目录','./.目录','./曾经','./这里']
签入较新的python:

Python 3.9.2(默认,2021年3月26日,15:28:17)
关于达尔文的[Clang 12.0.0(Clang-1200.0.32.29)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入操作系统
>>>子文件夹=[]
>>>对于os.scandir('.')中的f:
...   如果f.是_dir():
...     子文件夹。追加(f.path)
...
>>>子文件夹
['./目录']

您也可以在该链接中找到答案……您所有问题的答案都在该链接中,或者在关于列表理解的许多其他在线资源中,因此无需重新发布。该网站不是为来回跟进问题和答案而设计的。我相信你开始的问题已经得到了回答,所以如果你有更多的问题,你应该创建一个新的帖子。嘿,为了它的价值,结束一个问题并不意味着它是坏的或应该被删除。这只是我们说“我想你的问题在这里得到了回答”的机制,是吗?我知道这会让人觉得很残酷,对此我很抱歉。复制系统的好处是,未来的谷歌可能会找到你的问题,并被引导到标准的列表理解问答,我认为这对所有相关的人都是有益的。我真的希望你不会这样认为。这里发生的事情没有什么不吸引人的。请注意,您的问题不仅仅是
[关闭]
。它被标记为
[duplicate]
,这是一种特殊的闭合类型。这只是意味着它已经得到了回答,你已经同意了。所以我真的不明白为什么说这是不受欢迎的。本网站旨在成为一个高质量的编程问题和答案库。同一个问题多次出现并不能构成一个高质量的存储库。。。