#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)) Результат: ББааААбб
Комментариев нет:
Отправить комментарий