检查以确保字符串不包含多个值

Par*_*gue 7 python string algorithm

**注意 - 我不只是在字符串的末尾进行测试 - 需要在字符串中的任何位置找到特定的子字符串

检查以确保字符串不包含多个值的最快方法是什么.我目前的方法是低效和unpythonic:

if string.find('png') ==-1 and sring.find('jpg') ==-1 and string.find('gif') == -1 and string.find('YouTube') == -1:
Run Code Online (Sandbox Code Playgroud)

li.*_*idm 14

尝试:

if not any(extension in string for extension in ('jpg', 'png', 'gif')):
Run Code Online (Sandbox Code Playgroud)

这与您的代码基本相同,但写得更优雅.


jco*_*ctx 7

如果你只测试字符串的结尾,请记住str.endswith可以接受一个元组.

>>> "test.png".endswith(('jpg', 'png', 'gif'))
True
Run Code Online (Sandbox Code Playgroud)

除此以外:

>>> import re
>>> re.compile('jpg|png|gif').search('testpng.txt')
<_sre.SRE_Match object at 0xb74a46e8>
>>> re.compile('jpg|png|gif').search('testpg.txt')
Run Code Online (Sandbox Code Playgroud)