Python 循环遍历非无和非空目录
给定两个目录,例如:Python 循环遍历非无和非空目录,python,python-3.x,list,directory,Python,Python 3.x,List,Directory,给定两个目录,例如: dirA=getTrainingDir() dirB=getTestingDir() 现在,如果这两个目录不是None,也不是空字符串,我想循环遍历它们 我现在做的是: data_directories=[] if dirA: data_directories.append(dirA) if dirB: data_directories.append(dirB) for data_directory in data_directories: ... 是否有更
dirA=getTrainingDir()
dirB=getTestingDir()
现在,如果这两个目录不是None,也不是空字符串,我想循环遍历它们
我现在做的是:
data_directories=[]
if dirA:
data_directories.append(dirA)
if dirB:
data_directories.append(dirB)
for data_directory in data_directories:
...
是否有更优雅的语法用于此目的?没有更好的方法,但您可以使用以下内容:
if any([dirA,dirB])
或:
没有更好的方法可以做到这一点,但您可以使用以下方法:
if any([dirA,dirB])
或:
您可以使用筛选方法:
您可以使用筛选方法:
你想把你的两个ifs压缩成一条更优雅的线,或者是for循环?@CIsForCookies不仅如此,这是一个更一般的问题,任何可以达到同样目的的优雅方式你想把你的两个ifs压缩成一条更优雅的线,或者是for循环?@CIsForCookies不仅如此,这是一个更一般的问题,任何优雅的方法都可以达到同样的目的,任何[dirA,dirB]都是真的,如果其中任何一个dir的计算结果是truthy,但它不知道是哪一个@兄弟语法,但如果没有,你不需要检查所有的语法。我说这不是更好,只是更好。如果任何一个dir的计算结果是truthy,那么任何[dirA,dirB]都将是真的,但它不知道是哪一个@兄弟语法,但如果没有,你不需要检查所有的语法。我说不是更好,只是更好。
dirA = 'training_dir'
dirB = None
data_directories = list(filter(bool, [dirA, dirB])) # ['training_dir']