аватар question@mail.ru · 01.01.1970 03:00

Лучший способ для смены букв "А" и "Б" местами

Есть функция, которая принимает аргумент в виде строки, состоящей из ""А"", ""а"", ""Б"" и ""б"".

Каждая ""Б"" должна быть заменена на ""А"", каждая ""А"" на ""Б"" и так же с нижним регистром.

Пример:

>> swap('ААббББаа')'ББааААбб'

Написал такой слабенький код, но рабочий:

def swap(text):    new_text = []    for c in text:        if c == 'а':            new_text.append('б')        elif c == 'б':            new_text.append('а')        elif c == 'А':            new_text.append('Б')        elif c == 'Б':            new_text.append('А')    retu ''.join(new_text)

Как можно решить эту задачу по другому, чтобы код был короче и/или быстрее?

аватар answer@mail.ru · 01.01.1970 03:00

Если важна скорость обработки, то рекомендую воспользоваться :

trantab = str.maketrans('АБаб', 'БАба')text = 'ААббББаа'print(text.translate(trantab))

Результат:

ББааААбб

Последние

Похожие