Python - Borrar de la lista

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

Borrar de la lista

Publicado por Emilio (5 intervenciones) el 31/07/2020 19:25:21
En este código tengo problemas en la última función, no encuentro la manera de borrar una canción de la base de datos

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# Ejercicio400
class MP3:
    def __init__(self, intérprete, título, duración_en_segundos, estilo_musical):
        self.intérprete = intérprete
        self.título = título
        self.duración_en_segundos = duración_en_segundos
        self.estilo_musical = estilo_musical
 
    # Devuelve una cadena con el título e intérprete en una línea, formato resumido
    def resumido(self):
        print("Título: {0}, Intérprete: {1}".format(self.título, self.intérprete))
 
    # Decuelve una cadena con todos los datos del archivo MP3, cada campo ocupa una línea
    def __str__(self):
        cadena = "Título: {0}\n".format(self.título)
        cadena = cadena + "Intérprete: {0}\n".format(self.intérprete)
        cadena = cadena + "Tiempo: {0}\n".format(self.duración_en_segundos)
        cadena = cadena + "Estilo musical: {0}\n".format(self.estilo_musical)
        return cadena
 
# Añadir datos de una canción
def nuevas_canciones():
    título = input("Tíulo: ")
    if título == "":
        return None
    else:
        intérprete = input("Intérprete: ")
        duración_en_segundos = input("Tiempo: ")
        estilo_musical = input("Estilo musical: ")
    return MP3(intérprete, título, duración_en_segundos, estilo_musical)
 
# Añadir canción a la base de datos
def lista_de_canciones():
    while lista != "":
        canción = nuevas_canciones()
        if canción != None:
            lista.append(canción)
        else:
            break
 
# Listar todas las canciones de un intérprete determinado en formato resumido
def intérpretes(lista):
    cantante = input("Diga el intérprete: ")
    for canción in lista:
        if canción.intérprete == cantante:
            canción.resumido()
 
# Listar todas las canciones de un estilo musical determinafo en formato resumido
def estilo(lista):
    estilo_determinado = input("Diga el estilo musical: ")
    for canción in lista:
        if canción.estilo_musical == estilo_determinado:
            canción.resumido()
 
# Listar todas las canciones en la base de datos en formato completo
def todas_las_canciones(lista):
    for canción in lista:
        print(canción)
 
# Borra canciones de la base de datos según el título y el intérprete dados por el usuario
def borrado(lista):
    título_canción = input("Ponga el título de la canción para borrar: ")
    intérprete_canción = input("Ponga el intérprete de la canción para borrar: ")
    i = 0
    while i < len(lista):
        canción = lista[i]
        if canción.título == título_canción and canción.intérprete == intérprete_canción:
            del canción[i]
        else:
            i += 1
 
lista = []
lista_de_canciones()
intérpretes(lista)
estilo(lista)
todas_las_canciones(lista)
borrado(lista)
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Borrar de la lista

Publicado por joel (901 intervenciones) el 31/07/2020 21:44:52
Prueba a cambiar la linea 68:
1
del canción[i]
por:
1
del lista[i]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 17
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Borrar de la lista

Publicado por Emilio (5 intervenciones) el 31/07/2020 23:23:55
Uff, qué fácil, lo tenía ahí mismo jajaja, muchísimas gracias
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