Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Invirtiendo Una Colección
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Invirtiendo Una Colección 
 
Hola!.

Uno de los últimos ejercicios del curso de programación fundamental con Python trata de invertir un diccionario. (Diccionario = colección)
Como sabéis, las colecciones tiene una clave y un valor. El valor se puede repetir, pero la clave no.

Así que si tenemos una colección como esta:

nom_raza = ["Fido": "Perro", "Tom": "Gato", "Pluto": "Perro", "Pixie": "Ratón", "Jinks": "Gato", "Jerry": "Ratón"]  
 


Si quisiéramos invertirla nos encontraríamos con claves iguales. No podríamos tener:

raza_nom = ["Perro": "Fido" , "Perro":"Pluto" , ....]
 


Bien. ¿ Cómo lo solucionamos ?.

Una solución posible seria tener una clave común y como valor un array donde almacenar todos los valores que
pertenecen a la misma clave.

En Python la salida seria algo como esto:(Lo diccionarios en Python usan llaves para delimitarlo)

Citar:

{'Perro': ['Pluto', 'Fido'], 'Gato': ['Tom', 'Jinks'], 'Raton': ['Jerry', 'Pixie']}



El código del ejemplo me ha quedado así:

Public Sub Main()
  
  Dim nom_raza As New Collection
  Dim raza_nom As New Collection
  Dim animal As String
  Dim clave As String  
  Dim anombres As String[]
  
  nom_raza = [
    "Fido": "Perro",
    "Tom": "Gato",
    "Pluto": "Perro",
    "Pixie": "Ratón",    
    "Jinks": "Gato",
    "Jerry": "Ratón"]  
  
  For Each animal In nom_raza
    clave = nom_raza.Key
    If Not (raza_nom.Exist(animal)) Then        
      
      anombres = New String[]      
      anombres.Add(clave)      
      raza_nom[animal] = anombres      
    Else
      raza_nom[animal].Add(clave)    
    Endif
  Next    
  
End
 


Voy a mostraros lo que muestra según voy ejecutando el ejemplo.
En la colección tenemos esto:
 raza_nom

Si hacemos click en el Valor de la clave perro vemos:

 perros

Y así, igual con gato y ratón.

Aquí tenéis el ejemplo. He añadido un stop para que podais ver el contenido de la colección raza_nom.
Ya me gustaría no tardar tanto tiempo para hacer estas cosas.  

Y este es el código que hace lo mismo pero en Python:

nom_raza = {
    'Fido' : 'Perro',
    'Tom' : 'Gato',
    'Pluto' : 'Perro',
    'Pixie' : 'Raton',    
    'Jinks' : 'Gato',
    'Jerry' : 'Raton'}
    
raza_nom = {}

for animal in nom_raza:
    tipo = nom_raza[animal]

    if not (tipo in raza_nom):
        raza_nom[tipo] = [animal]
    else:
        raza_nom[tipo].append(animal)

print (raza_nom)
 


Saludos

invertir_coleccion.tar.gz
Descripción:  
Descargar
Nombre del archivo: invertir_coleccion.tar.gz
Tamaño: 5.1 KB
Descargado: 19 veces
invertir_coleccion.tar.gz
Descripción:  
Descargar
Nombre del archivo: invertir_coleccion.tar.gz
Tamaño: 5.1 KB
Descargado: 19 veces
invertir_coleccion.tar.gz
Descripción:  
Descargar
Nombre del archivo: invertir_coleccion.tar.gz
Tamaño: 5.1 KB
Descargado: 19 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Domingo, 25 May 2014, 18:20; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Invirtiendo Una Colección 
 
Hola shell,

señalé este tu mensaje en el foro de gambas-it.org .
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Invirtiendo Una Colección 
 
Gracias Vuott.

Espero que le sea útil a nuestra comunidad hermana.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Domingo, 25 May 2014, 23:41; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Invirtiendo Una Colección 
 
Interesante Shell, gracias!!

Nota:
Otro ejemplo de como Python, nos ayuda a mejorar nuestra programación con gambas  
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Martes, 27 May 2014, 09:30; editado 2 veces 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Problemas Con La Colección Me.Controls shordi General 8 Sabado, 23 Julio 2011, 20:12 Ver último mensaje
shordi
No hay nuevos mensajes Colección Anidada Shell General 4 Martes, 28 Junio 2016, 18:46 Ver último mensaje
Shell
No hay nuevos mensajes Actualizar Colección Recursivamente Shell General 6 Jueves, 30 Junio 2016, 23:46 Ver último mensaje
Shell
No hay nuevos mensajes Vinilo. Colección De Música Con Sqlite3 tincho Aplicaciones/Fragmentos de Código 32 Martes, 20 Junio 2017, 14:38 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron