次のMWEを短縮するにはどうすればよいですか?複数のIF ... IN ... OR文を短縮する方法は?
files = ['a.txt', 'b.jpg', 'c.png', 'd.JPG', 'e.JPG']
images = [x for x in files if '.jpg' in x or '.png' in x or '.JPG' in x]
print images
私は
動作しませんfiles = ['a.txt', 'b.jpg', 'c.png', 'd.JPG', 'e.JPG']
images = [x for x in files if ('.jpg' or '.png' or '.JPG') in x]
print images
の観点で考えていました。
この投稿とは対照的に:Checking file extension、私はまた、ファイルの終わりに焦点を当てていない一般化に興味があります。
これは私のMWE、多くの感謝のために素晴らしい作品。拡張子として、endswith()は 'contains()' 'のようなものに置き換えられる可能性があるため、エンディングに焦点を当てていないケースに適用されるのが一般的でしょうか? – CFW
@CFW pythonにはcontainsはありませんが、 'in'キーワードがあります。その場合、 '[x for y in x( '.jpg'、 '.png'、 '。JPG'))]'これは例えば ' 'abc.pngabc'' –