Страницы

Поиск по вопросам

понедельник, 12 ноября 2018 г.

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

Есть функция, которая принимает аргумент в виде строки, состоящей из "А", "а", "Б" и "б".
Каждая "Б" должна быть заменена на "А", каждая "А" на "Б" и так же с нижним регистром.
Пример:
>> 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('А') return ''.join(new_text)
Вопрос: как можно решить эту задачу по другому? Чтобы код был короче и/или быстрее.


Ответ

Если важна скорость обработки, то рекомендую воспользоваться translate
trantab = str.maketrans('АБаб', 'БАба') text = 'ААббББаа' print(text.translate(trantab))
Результат:
ББааААбб

Комментариев нет:

Отправить комментарий