Цикл не None и не пустые каталоги - PullRequest
0 голосов
/ 09 мая 2018

Учитывая два каталога, например,

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:
  ...

Какой-нибудь более элегантный синтаксис для этой цели?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Вы можете использовать filter метод:

dirA = 'training_dir'
dirB = None

data_directories = list(filter(bool, [dirA, dirB])) # ['training_dir']
0 голосов
/ 09 мая 2018

Нет лучшего способа сделать это, но вы можете использовать что-то вроде этого:

if any([dirA,dirB])

или

data_directories=[di for di in [dirA,dirB]  if di]
...