Rotar cadenas a la izquierda o derecha con Python

Este post es sobre el lenguaje de programación Python y trata sobre cómo rotar una cadena determinadas posiciones a la izquierda o derecha.

Vamos a definir dos funciones que van a rotar una cadena N posiciones a la izquierda o a la derecha.

Esto de las rotaciones de cadenas lo vimos con el algoritmo Cesar en Python.

Nota: si quieres invertir una cadena mira este post.

Rotar cadenas en Python

El algoritmo para rotar cadenas es sencillo; solamente necesitamos cortar dos partes de la cadena y después juntarlas o concatenarlas en un distinto orden. Para ello usamos operaciones con slices.

Por poner un ejemplo tenemos la cadena “Parzibyte“, vamos a rotarla 3 posiciones a la izquierda. Para ello, primero cortamos la cadena desde el número de rotaciones hasta el final, y tenemos “zibyte“.

Ahora cortamos la cadena desde 0 hasta el número de rotaciones y tenemos “Par“.

Finalmente concatenamos “zibyte” con “Par” y queda “zibytePar”. La cadena ha sido rotada.

Este principio aplica tanto para rotar una cadena a la izquierda como a la derecha.

Rotar cadena a la izquierda con Python

Veamos la siguiente función que rota una cadena. Recibe el número de rotaciones y devuelve la cadena rotada a la izquierda:

def rotar_izquierda(cadena, posiciones):
  return cadena[posiciones:] + cadena[:posiciones]

Rotar cadena a la derecha

La función es muy parecida a la que rota o gira una cadena, pero ahora es a la derecha. Para ello reutilizamos la función anterior pero negando el número de rotaciones:

def rotar_derecha(cadena, posiciones):
  return rotar_izquierda(cadena, -posiciones)

Poniendo todo junto

A continuación expongo un ejemplo de código para rotar cadenas con Pyhton, ya sea a la izquierda o a la derecha:

def rotar_izquierda(cadena, posiciones):
  return cadena[posiciones:] + cadena[:posiciones]
  
def rotar_derecha(cadena, posiciones):
  return rotar_izquierda(cadena, -posiciones)


palabras = [
  "Hola",
  "Qué tal",
  "Luis Cabrera",
  "Programando en Python",
  "123456789",
]

for palabra in palabras:
  print("Rotar {} a la izquierda: ".format(palabra))
  print(rotar_izquierda(palabra, 3))
  print("Rotar {} a la derecha: ".format(palabra))
  print(rotar_derecha(palabra, 3))

Puedes probar el código localmente, primero instala Python ya sea en Windows o en Linux Ubuntu.

¿Quieres más tutoriales de Python? click aquí.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *