Python - depslazamiento de elementos en listas

 
Vista:
sin imagen de perfil

depslazamiento de elementos en listas

Publicado por anonymous (3 intervenciones) el 21/11/2020 13:24:45
Tengo un ejercicio que me pide realizar desplazamiento de los elementos que la componen, sin embargo solo consigo intercambiar una posición con otra y no mover todo el conjunto. Necesitaría ayuda. Este es el ejercicio:

#La lista de entrada contiene enteros (0s y 1s). Para un número entero k, mueva cada elemento de la lista k veces a la derecha. #Considere que la lista de entrada es un círculo lógico: al determinar nuevos lugares para los elementos, si se #el finalde la lista, continúe contando desde el comienzo de la lista. #Imprima el estado de la lista después de modificarla.
input: 1,1,0,0,1,0,1

2

output: [0, 1, 1, 1, 0, 0, 1]

El programa que a mi se me ocurre es utilizando .pop y sustituir dos posiciones pero no consigo salir de esa idea para poder hacer el programa.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

depslazamiento de elementos en listas

Publicado por tincopasan (1082 intervenciones) el 21/11/2020 15:54:07
hay muchas formas de resolver esto, pero para que complicarse si es solo la suma de dos rebanadas(slice), pongo un ejemplo pero es tan simple que me da pena hacerlo:
1
2
3
4
5
6
7
8
lista = [1,1,0,0,1,0,1]
 
def mueve(lista,posicion):
    parte1 = lista[-posicion:]
    parte2 = lista[:-posicion]
    return parte1+parte2
 
print(mueve(lista,2))

por supuesto falta la verificación que el desplazamiento sea menor al largo de la lista, pero eso hacelo vos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar