如何在 python 中使用 .endswith 函数测试多个条件

How to test several conditions with .endswith function in python

我有一个具有不同扩展名的文件列表。在这些中,我只想过滤掉扩展名为 .bam.bai.vcf 等的那些。有没有一种方法可以使用带有多个参数的 endswith 函数而不是重复多次?

所以代替:

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
从 Python 2.5 开始,

endswith 接受可能后缀的元组。所以它只是:

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

https://docs.python.org/3/library/stdtypes.html#str.endswith