我从HTML文档中返回了一个href值列表。我想浏览此列表中的每个链接并测试它们是否包含IMAGE_FORMAT
元组中的任何值。
IMAGE_FORMAT = (
'.png',
'.jpg',
'.jpeg',
'.gif',
)
目前我只是在测试'.jpg'
例如if '.jpg' in link.get('href'):
我想将此代码扩展为if [any value inside IMAGEFORMAT] in link.get('href'):
最有效或最干净的方式是什么?
答案 0 :(得分:6)
如果你真的想要in
,那么可能
href = link.get('href')
if any(end in href for end in IMAGE_FORMAT):
# do something
pass
但如果您确实需要ends with
,请使用.endswith
:
>>> IMAGE_FORMAT = ('.png','.gif','.jpg','.jpeg')
>>> 'fred.gif'.endswith(IMAGE_FORMAT)
True
取决于您希望如何对待'fred.gif.gz'等。另请注意,如果您不关心案例,您可能希望使用href.lower()。
答案 1 :(得分:1)
针对列表理解尝试any
。
any(e in href for e in IMAGE_FORMAT)
或者,在英语中,“我的URI中的图像格式是否为任何项目?”但是请记住in
如何使用字符串。