You can make a regex character class out of your special characters and then use a regex substitution to do the replacements. For longer strings or larger lists of special characters, you should find this runs 2-3x faster than the list comprehension solution.
import re
special_characters = ['!', '"', '#', '$', '%','(',')']
regex = re.compile('[' + ''.join(f'\{c}' for c in special_characters) + ']')
sear = '!%'
search_value = regex.sub('', sear)
print(search_value)
sear = 'ABC!%DEF'
search_value = regex.sub('', sear)
print(search_value)
sear = 'ABC,DEF'
search_value = regex.sub('', sear)
print(search_value)
Output:
<blank line>
ABCDEF
ABC,DEF
Note I've prefixed all characters in the character class with \
so that you don't have to worry about using characters such as -
and ]
which have special meaning within a character class.