Python - Encontrar el valor más a la derecha

 
Vista:
sin imagen de perfil
Val: 10
Ha disminuido su posición en 10 puestos en Python (en relación al último mes)
Gráfica de Python

Encontrar el valor más a la derecha

Publicado por Miriam (4 intervenciones) el 16/01/2021 20:41:22
Buenas a todos, a ver si alguien puede echarme una mano. Tengo que crear una función que dada una lista me devuelva la posición del 1 que esté más a la derecha. Las listas solo tienen valores 1's y 0's. Por ejemplo:
1
lista = [1,1,0,0,0]
me debería devolver
1
posicion = 1
Otro ejemplo:
1
lista = [0,0,1,0,0]
deberia devolver
1
posicion = 2
El caso es que mi función funciona solo para el primer ejemplo y no sé como solucionarlo.
1
2
3
4
5
6
def unos_derecha(lista):
    elemento = 0
    while lista[elemento] == 1:
        elemento += 1
    pos = elemento - 1
    return pos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
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

Encontrar el valor más a la derecha

Publicado por tincopasan (1082 intervenciones) el 16/01/2021 21:31:44
lo resolvería así:
1
2
3
4
5
6
7
lista = [0,0,1,0,1]
 
def unos_derecha(lista):
    return [i for i,x in enumerate(lista) if x==1][-1]
 
 
print(unos_derecha(lista))

pero acá hay un problema que no has planteado y es: ¿se puede resolver de cualquier forma?
si tiene que ser estrictamente con tu lógica es otro tema, lo que pasa es que en lo personal, no me gusta usar tantas líneas si no son necesarias.
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