Python更优雅的方式来编写这个IF OR语句?

时间:2012-08-09 13:42:18

标签: python python-2.7

是否有更优雅的方式来撰写此声明?我发现自己写的相似很多。

if ('.jpg' in imagename[0].lower() or '.png' in imagename[0].lower() or '.jpeg' 
    in imagename[0].lower()):

3 个答案:

答案 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