我有一个不同扩展名的文件列表。其中我只想过滤掉那些扩展名为.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

最佳答案

endswith接受一个可能的后缀元组,从Python 2.5开始。所以它只是:

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

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

10-07 20:29