Страницы

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

суббота, 21 декабря 2019 г.

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

#python #python_3x #инспекция_кода


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

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

Пример:

>> 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)


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


Ответы

Ответ 1



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

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

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