1

このステートメントを書くためのよりエレガントな方法はありますか? 私は自分自身が似たようなものをかなりたくさん書いていることに気づきました。

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

3 に答える 3

15

あなたはおそらくしたいです

if imagename[0].lower().endswith((".jpg", ".jpeg", ".png")):
    # whatever

str.endswith()文字列のタプルを受け入れることに注意してください。また、このコードは、ファイル名の末尾にある言及された文字列をチェックするだけなので、あなたのものと同等ではないことに注意してください。

于 2012-08-09T13:44:03.257 に答える
1

次のこともできます。

if any(ext in imagename[0].lower() for ext in ['.jpg', '.png', '.jpeg']):

any(boolean_list)要素が含まれているTrue場合に返します。boolean_listTrue

于 2012-08-09T13:51:52.927 に答える
0

もう1つの方法(楽しみのため):

if imagename[0].lower().split('.')[-1] in ('jpg','png','jpeg'):
    # do something
于 2012-08-09T14:31:40.073 に答える