Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Eliminar elementos de un diccionario con for
#1
Sad 
Buenas noches, cordial saludo:

Código:
dict1 ={'1': ['Martin', 'canino', 12, 33], '2': ['Milu', 'canino', 9, 26], '3': ['Anastasia', 'felino', 10, 4], '4': ['Lupita', 'felino', 8, 5], '5': ['Tomasa', 'felino', 9, 5], '6': ['Pelusa', 'canino', 2, 6], '7': ['Genoveva', 'bonino', 14, 106.4], '8': ['Motita', 'roedor', 1, 0.34]}

for value in dict1.values():
    if value >=9

pero se registra este error

'>=' not supported between instances of 'list' and 'int'

Entiendo que no puedo realizarlo pero necesito sacar de esta lista todos los values mayor o igual a 9 ejemplo:  ['Milu', 'canino', 9, 26] 

Gracias, quedo atenta.
Responder
#2
Hola, bienvenida.

El bucle debería ser así:

Código:
for key, value in dict1.items():
    if value[2] >= 9:

Te invito a que leas sobre diccionarios y listas: https://recursospython.com/guias-y-manua...cionarios/ y https://recursospython.com/guias-y-manua...-y-tuplas/.

Si querés quedarte únicamente con los elementos cuyo value[2] es menor a 9, tenés que crear un nuevo diccionario, ya que no podés eliminar elementos del diccionario mientras lo estás recorriendo con un for. Podrías hacerlo usando comprensión de diccionarios:

Código:
dict1 = {
    '1': ['Martin', 'canino', 12, 33],
    '2': ['Milu', 'canino', 9, 26],
    '3': ['Anastasia', 'felino', 10, 4],
    '4': ['Lupita', 'felino', 8, 5],
    '5': ['Tomasa', 'felino', 9, 5],
    '6': ['Pelusa', 'canino', 2, 6],
    '7': ['Genoveva', 'bonino', 14, 106.4],
    '8': ['Motita', 'roedor', 1, 0.34]
}
dict1 = {k: v for k, v in dict1.items() if v[2] < 9}
print(dict1)

Sobre este tema te dejo el siguiente artículo: https://recursospython.com/guias-y-manua...lecciones/.

Saludos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)