Найти - Пользователи
Полная версия: Почему для [::-1] нет алиаса reverse?
Начало » Python для экспертов » Почему для [::-1] нет алиаса reverse?
1 2
worldmind
Я перловик, интересуюсь питоном (третьим) и обычно в питоне всё сделано более логично, аккуратно и продумано, однако столкнулся с тем, что для того чтобы перевернуть строку есть две уродливые конструкции
 'abc'[::-1]
и
 ''.join(reversed('abc'))
Читаемость по сравнению с единственно логичным
 'abc'.reverse()
жуткая, да ещё и говорят что первый вариант более производительный, но с моей точки зрения он и более уродливый хоть и короткий, может кто знает почему в питоне не алиаса reverse для
 [::-1]
?

UPD: как терпимый вариант можно делать так
 >>> str = 'asdfghjkl'
>>> REVERSE = slice(None, None, -1)
>>> str[REVERSE]
'lkjhgfdsa'
4kpt_IV
Ясно почему. Что sorted, что reversed могут принимать не только строки
JOHN_16
Хотя бы потому что реверсить строки в реальных задачах не приходиться. А это означает что на 99.9% не нужно.
Далее, сама запись
 value[::-1]
это не штука которая специально реверсит строку. Это срезы (!) любого объекта (!) поддерживающего специальный метод __reversed__ или являющегося последовательностью. Как Вам идея реверснуть экземпляр класса ? Да легко.
_nemo_
 st = 'abc'
print('Source string: ' + st)
print('Reversed string: ' + st[::-1])
JOHN_16
_nemo_
ну и в чем смысл вашего поста ?
_nemo_
JOHN_16
Смысл поста в том, что
 st[::-1]
уже reversed string,
а reverse reversed string непременно будет st
FishHook
_nemo_
А вы вообще читали стартовый пост и ответы на него?
_nemo_
_nemo_
Вот этот:
'''
может кто знает почему в питоне не алиаса reverse для
 [::-1]
'''
Да, читал.
FishHook
_nemo_
и вы ответили ТСу, почему в питоне нет специального метода для реверса строки? В каком месте?
_nemo_
FishHook

признаюсь полностью не понял вопроса… теперь понял…
Это вопрос тогда не ко мне а разработчикам питона.
Там помимо функции reverse еще много чего нет…
Не спрашивайте почему, это военная тайна, вам знать
не положено
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB