Python:如何在列表中的if [multiple values]内测试多个值:

Kri*_*uck 0 python

我从HTML文档中返回了一个href值列表.我想浏览此列表中的每个链接并测试它们是否包含我的IMAGE_FORMAT元组中的任何值.

IMAGE_FORMAT = (
    '.png',
    '.jpg',
    '.jpeg',
    '.gif',
)
Run Code Online (Sandbox Code Playgroud)

目前我只是测试'.jpg'例如 if '.jpg' in link.get('href'):

我想将这些代码扩展到类似的东西 if [any value inside IMAGEFORMAT] in link.get('href'):

什么是最有效或最干净的方式或这样做?

DSM*_*DSM 6

如果你真的想要in,那么也许吧

href = link.get('href')
if any(end in href for end in IMAGE_FORMAT):
    # do something
    pass
Run Code Online (Sandbox Code Playgroud)

但如果你真的想要ends with,那么使用.endswith:

>>> IMAGE_FORMAT = ('.png','.gif','.jpg','.jpeg')
>>> 'fred.gif'.endswith(IMAGE_FORMAT)
True
Run Code Online (Sandbox Code Playgroud)

取决于你想如何对待'fred.gif.gz'等.另请注意,如果您不关心案例,您可能希望使用href.lower().