Python - Porque no se inserta el elemento en la posicion enviada

 
Vista:
sin imagen de perfil

Porque no se inserta el elemento en la posicion enviada

Publicado por bryan (10 intervenciones) el 29/11/2016 07:29:19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#modificar  los elementos de datos mediante el nombre de la pelicula
datos = ([
         [ 10,   40,    20,     3.00,     3.80],
         [ 3,    50,    30,     2.00,     2.50],
         [ 4,    30,    10,     2.50,     4.00 ]
         ])
 
peliculas = ['El rey leon','Las_Tortugas Ninjas','Doctor Strange']
 
 
def modi_pelicula(nombre_pelicula,Nueva_peliculas):
  for i in peliculas:
   if i == nombre_pelicula:  #rey leon 
      indice=peliculas.index(nombre_pelicula)
      peliculas.insert(indice,Nueva_peliculas)
  print(peliculas)
 
 
nombre_pelicula=input("Dijiste el nombre de la pelicula\t")
Nueva_peliculas=input("dijite su nueva pelicula\t")
#Sala_pelicula =input("Dijite la sala de la pelicula")
#Capasidad_pelicula=input("Dijite la capasidad de la pelicula")
#Asientos_pelicula=input("dijite los asientos de la pelicula")
#val_tike=input("Dijite el valor del tike")
#Val_Usuar=input("Dijite el valor del usuario")
modi_pelicula(nombre_pelicula,Nueva_peliculas)
xk no se inserta el elemento en la posicion enviada
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
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Porque no se inserta el elemento en la posicion enviada

Publicado por xve (1646 intervenciones) el 29/11/2016 08:25:48
Hola Bryan, te he modificado un poco la función... lo que no puedes hacer, es añadir al inicio de la lista el nuevo valor, ya que luego el bucle es infinito.

1
2
3
4
5
6
7
8
9
10
def modi_pelicula(nombre_pelicula,Nueva_peliculas):
  indice=-1
 
  for i in peliculas:
   if i == nombre_pelicula:  #rey leon 
      indice=peliculas.index(nombre_pelicula)
      break
  if indice>=0:
    peliculas.insert(indice,Nueva_peliculas)
  print(peliculas)

Si tienes duda...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
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

Porque no se inserta el elemento en la posicion enviada

Publicado por tincopasan (1082 intervenciones) el 29/11/2016 15:14:20
varias cosas:
1) efectivamente estás creando un bucle infinito
2) no entiendo para que querés recorrer la llista, ya que con:
1
indice=peliculas.index(nombre_pelicula)
ya accedés al lugar que ocupa la película
3) de la misma forma el if está demás podrías resumir todo en:
1
2
3
4
def modi_pelicula(nombre_pelicula,Nueva_peliculas):
    indice=peliculas.index(nombre_pelicula)
    peliculas.insert(indice,Nueva_peliculas)
    print(peliculas)

4)cabe aclarar que con esto no estás reeemplazando el nombre de la película sino insertando un nombre nuevo
5) la palabra correcta es"digite"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Porque no se inserta el elemento en la posicion enviada

Publicado por bryan (10 intervenciones) el 29/11/2016 18:24:16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
if (nombre_pelicula in peliculas) == True:  #rey leon 
      a=peliculas.index(nombre_pelicula)#indice de la pelicula anterior en la lista
      peliculas.insert(a,Nueva_peliculas)#insertar nueva pelicula
      peliculas.remove(nombre_pelicula)# remover nombre la pelicula anterior de la lista
      for i in range(len(datos)):
        if peliculas[i]== Nueva_peliculas:
         print("la sala actual a esta pelicula es:\t",datos[i][0])
         pregunta=input("desean cambiar la sala\t")
         if pregunta=="si":
          Sala_Nueva =input("Dijite la nueva sala\t")
          sala_anterior=datos[i][0]
          datos.insert(sala_anterior,Sala_Nueva)#insertar nueva pelicula          
          print(datos)
          #datos.insert(sala_index,Sala_pelicula) 
          #print("exito")
          #b=datos.index(datos[i][0])
   else:
      print("No esta en la lista O no ingreso bien el nombre de la pelicula \nrecuerde la primera letra es mayuscula")
 
nombre_pelicula=input("Dijiste el nombre de la pelicula\t")
Nueva_peliculas=input("dijite su nueva pelicula\t")
 
#Capasidad_pelicula=input("Dijite la capasidad de la pelicula")
#Asientos_pelicula=input("dijite los asientos de la pelicula")
#val_tike=input("Dijite el valor del tike")
#Val_Usuar=input("Dijite el valor del usuario")
modi_pelicula(nombre_pelicula,Nueva_peliculas)
modificando un poco mi codigo y tomando en cuenta todas sus opiniones he lograda llegas asta aqui ahora no entiendo xk no me da el indice de mi lista datos para posterior cambiarla x otra
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar