284

次のコードを書くpythonicの方法は何ですか?

extensions = ['.mp3','.avi']
file_name = 'test.mp3'

for extension in extensions:
    if file_name.endswith(extension):
        #do stuff

forループの明示的な宣言は避けて、条件に記述できるという漠然とした記憶がありifます。これは本当ですか?

4

7 に答える 7

568

あまり知られていませんが、str.endswithはタプルも受け入れます。ループする必要はありません。

>>> 'test.mp3'.endswith(('.mp3', '.avi'))
True
于 2013-08-21T08:03:46.333 に答える
58

使用するだけです:

if file_name.endswith(tuple(extensions)):
于 2013-08-21T08:03:36.980 に答える