Skip to main content
 首页 » 编程设计

查找字符串是否包含多个值的 Pythonic 方法

2025年05月04日34insus

我试图通过文件列表查找所有 excel、txt 或 csv 文件并将它们附加到列表

goodAttachments = [i for i in attachments if str(i).split('.')[1].find(['xlsx','csv','txt']) 

这显然是行不通的,因为 find() 需要一个字符串而不是一个列表。我应该在列表理解中尝试列表理解吗?

请您参考如下方法:

无需拆分或使用双列表理解。您可以使用 str.endswith 将字符串元组作为参数进行检查:

goodAttachments = [i for i in attachments if str(i).endswith(('.xlsx', '.csv', '.txt'))] 

如果真的要拆分:

goodAttachments = [i for i in attachments if str(i).split('.')[-1] in ('xlsx', 'csv', 'txt')] 

第一种方法更好,因为它考虑了没有扩展名的文件。