Я хотел бы предложить, возможно, добавить еще несколько строк, чем пытаться создать однострочник с вложенными списками.Хотя это сработало бы, я думаю, что это делает более читабельный код для разделения этих представлений на отдельные строки.
import os
attachments = ['sadf.asdf', 'asd/asd/asd.xslx']
whitelist = {'.xslx', '.csv'}
extentions = (os.path.split(fp)[1] for fp in attachments)
good_attachments = [fp for fp, ext in zip(attachments, extentions) if ext in whitelist]
Я также использовал os.path.split
над str.split
, так как файл может содержать несколько точеки этот сплит предназначен именно для этой работы.