Как проверить несколько условий с помощью функции.endswith в python

У меня есть список файлов с разными расширениями. Из тех, что я хочу отфильтровать только те, с расширением .bam, .bai, .vcf и еще немного. Есть ли способ сделать это, используя функцию конца с несколькими аргументами, вместо того, чтобы повторять это несколько раз?

Так что вместо:

for name in list:
    if name.endswith('.bam') or name.endswith('.bai') or name.endswith('.bai'):
        # do stuff

Что-то вроде:

for name in list:
    if name.endswith(*['.bai', '.bam', '.vcf']):
        # do stuff

1 ответ

Решение

endswith принимает набор возможных суффиксов, начиная с Python 2.5. Так что это просто:

if name.endswith(('.bai','.bam','.vcf')):

https://docs.python.org/3/library/stdtypes.html

Другие вопросы по тегам