Автор оригинала: Jose Salvatierra.
В списках Python есть удобный метод под названием reverse
, но это не всегда то, что мы хотим. Для начала, мы не можем использовать его для других типов последовательностей, таких как кортежи и строки, и он также выполняет модификацию исходной последовательности на месте.
Используя срезы, мы можем обойти эти ограничения, изменив любую последовательность, которая нам нравится, прежде чем назначить ее новой переменной. Если мы хотим использовать одно и то же имя переменной, конечно, мы можем, так как Python позволяет нам привязывать имена к новым объектам по желанию.
friends = ["Rolf", "John", "Mary"] friends_reversed = friends[::-1] print(friends_reversed) # ['Mary', 'John', 'Rolf'] greet = "Hello, World!" print(greet[::-1]) # "!dlroW ,olleH"
Этот метод использует расширенные срезы для пошагового выполнения последовательности в обратном направлении, создавая новую последовательность, содержащую все элементы исходной последовательности.
Хотя все это довольно аккуратно, просто потому, что мы можем что-то сделать, это не значит, что мы должны это делать. При работе со списками вы почти всегда захотите использовать гораздо более читаемый метод reverse
. Вы можете найти документацию для него здесь .
Для других типов последовательностей этот разворот среза очень лаконичен и может быть лучшим вариантом.
Если вы хотите узнать больше о срезах, у нас есть два сообщения, в которых более подробно рассказывается о том, как они работают: Часть 1 , Часть 2 .