是否有更优雅的方式来撰写此声明?我发现自己写的相似很多。
if ('.jpg' in imagename[0].lower() or '.png' in imagename[0].lower() or '.jpeg'
in imagename[0].lower()):
答案 0 :(得分:15)
你可能想要
if imagename[0].lower().endswith((".jpg", ".jpeg", ".png")):
# whatever
请注意str.endswith()
接受字符串元组。另请注意,此代码与您的代码不同,因为它只检查文件名的 end 中提到的字符串,但可能是您的意图。
答案 1 :(得分:1)
你也可以这样做:
if any(ext in imagename[0].lower() for ext in ['.jpg', '.png', '.jpeg']):
如果any(boolean_list)
包含True
元素,则 boolean_list
会返回True
。
答案 2 :(得分:0)
另一种方法(为了好玩):
if imagename[0].lower().split('.')[-1] in ('jpg','png','jpeg'):
# do something