Как удалить скобки из строки python

Ответы
Аватар пользователя Ivan Mamtsev
Ivan Mamtsev
02 июня 2022

Чтобы удалить один или несколько одинаковых символов можно воспользоваться методом строки .replace().

s = '(foo(bazz('  # '(foo(bazz'
s = s.replace('(', '')  # 'foobazz'

Но если символы разные, то придется проходить несколько раз, каждый раз с новым символом для замены, что совсем неудобно. Тут можно либо применить регулярные выражения:

import re
# Обратите внимание, нам нужно экранировать скобки,
# чтобы различить их от синтаксиса регулярных выражений
braces = r'[\(\)]'
s = '(foo)(bazz)()'  # '(foo)(bazz)()'
s = re.sub(braces, '', s)  # 'foobazz'

Либо обойти строку и собрать новую из всех символов, кроме тех что хотим удалить:

braces = {'(', ')'}  # {'(', ')'}
s = '(foo)(bazz)()'  # '(foo)(bazz)()'
s = ''.join(ch for ch in s if ch not in braces)  # 'foobazz'