Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Tipo Diccionario
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Tipo Diccionario 
 
Hola!.

Cuando estaba escribiendo el juego del ahorcado en Python, tenia una lista de cadenas.
Un poco mas avanzando, llegue al tema de diccionarios.

Se pretendía de que las palabras perteneciera cada uno a un tema. Animales,frutas,formas y colores.
Diccionarios es algo que podemos conocer de Visual Basic. La primera vez creía que era como las colecciones, pero no es así.
Las colecciones tienen un clave y un valor. Y el diccionario tienen una clave y distintos valores.

Las listas normalmente en Python van con los corchetes como nuestros arrays y los diccionarios usa llaves.
Las listas en Python son complejas.

Un ejemplo de lista que podemos imitar en Gambas.

palabras = 'hormiga babuino tejón murciélago oso castor camello gato almeja puma coyote cuervo ciervo perro burro pato águila hurón zorro rana cabra'.split()
 


Split hace como en gambas, solo que convierte palabras en un lista en vez de un string, como veis. Es mas fácil que tener que escribir, las comas entre
cada palabra y las dobles comillas simples. Nosotros usaríamos dobles comillas. No podemos olvidarnos de los ()..nunca. .split()

Ahora vayamos con diccionarios.
palabras = {'Colores':'rojo naranja amarillo verde azul añil violeta blanco negro marrón'.split(),
'Formas':'cuadrado triangulo rectángulo circulo elipse rombo trapezoide galón hexágono heptagonal octógono'.split(),            
'Frutas':'manzana naranja limon lima pera sandía uva pomelo cereza banana melón mango fresa tomate'.split(),
'Animales':'hormiga babuino tejón murciélago oso castor camello gato almeja puma coyote cuervo ciervo perro burro pato'.split }
 


Los diccionarios usan primero la clave, ejemplo 'Colores' luego  :  , pudiera quedar la de colores de esta forma:

{'Colores': ['rojo', 'amarillo', 'naranja', 'verde', 'azul',.....]}

Existen métodos para obtener la longitud del diccionario, según sus claves. En este caso, el diccionario seria palabras y tendría,
tres claves. Si me equivoco, corregirme.
 
Si quisiéramos obtener el valor amarillo escribiríamos:

print (palabras['Colores'][2])
 


Si quisiéramos obtener hormiga:

print (palabras['Animales'][0])
 


Los índices van como nuestros arrays, comienzan de 0.

Una de las diferencias entre listas y diccionarios, es que las lista tienen un orden y los diccionarios no.
Si tuviéramos los mismos elementos en dos listas distintas pero en distinto orden, cuando la comparásemos nos diría que son distintas.
No ocurre lo mismo con los diccionarios, cuando tienen el mismo numero de claves y valores.  

No se ahora mismo si hay algo parecido en nuestro gambas. Buscare la forma de implementar algo parecido cuando haga el ahorcado en versión consola para gambas.
(Si no lo hubiera hecho en consola no hubiese aprendido otras cosas de los caracteres tales como \). Debo poner \\ si quiero imprimir \

Os animo a que estudies y aprendáis todo lo que podáis.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Lunes, 15 Julio 2013, 08:22; editado 4 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tipo Diccionario 
 
Para empezar he comenzado con esto:

Public Struct diccionario
  tema As String
  valores As String[]
End Struct

Public Sub _new()

End

Public Sub Form_Open()
  
  Dim dicanimales As Diccionario
  Dim conjunto As String
  
  dicanimales = New Diccionario
  conjunto = "gacela león tigre hipopótamo elefante"
    
  With dicanimales
    .tema = "animales"    
    .valores = Split(conjunto, " ")
  End With
 
  Print dicanimales.tema
  Print dicanimales.valores[1]
    
End
 


Continuo viéndolo...a ratos.
Tendré distintos diccionarios y luego tengo que hacer algo que englobe a todos los diccionarios.
No quería complicarme con clases o estructuras, pero es lo primero que se me ha ocurrido.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Lunes, 15 Julio 2013, 09:17; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tipo Diccionario 
 
Con un array de estructuras.

Public Struct diccionario
  tema As String
  valores As String[]
End Struct

Public Sub _new()

End

Public Sub Form_Open()
  
  Dim nuevodiccionario As Diccionario  
  Dim conjunto As String
  Dim tema As String
  Dim dictotal As New Diccionario[]
  
  nuevodiccionario = New Diccionario
  tema = "animales"
  conjunto = "gacela león tigre hipopótamo elefante"
  dictotal.Add(CreaDiccionario(tema, conjunto), 0)
  
  nuevodiccionario = New Diccionario
  tema = "frutas"
  conjunto = "pera limón sandía coco fresa"  
  dictotal.Add(CreaDiccionario(tema, conjunto), 1)
      
End


Public Function CreaDiccionario(titulo As String, palabras As String) As Diccionario
  Dim undiccionario As New Diccionario
  
  With undiccionario
    .tema = titulo
    .valores = Split(palabras, " ")
  End With
  
  Return undiccionario
    
End
 


...en progreso..

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Lunes, 15 Julio 2013, 09:42; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tipo Diccionario 
 
Podemos probar el diccionario así:

Print dictotal[0].tema
Print dictotal[0].valores[0]
Print
Print dictotal[1].tema
Print dictotal[1].valores[1]
 


El resultado seria:

Citar:

animales
gacela

frutas
limón


¿ Progreso terminado ?..no, en la programación nunca se acaba.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tipo Diccionario 
 
Tengo hecho un ejemplo de Colecciones y estructuras:

http://cursogambas.blogspot.com.es/2012/08/colecciones.html

Creo que tambien es bastante similar a la forma en lo que lo trata python.

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Tipo Diccionario 
 
Gracias Julio.

Lo hice también así:
A ver si con un poco de tiempo lo veo mejor, pero funciona. Es otra forma posible, todo sea por estudiar.

'Estructuras y colecciones

Public Struct diccionario
  tema As String
  valores As String[]
End Struct

Private dictotal As New Collection

Public Sub Form_Open()
  
  Dim conjunto As String
  Dim tema As String
  Dim undiccionario As Diccionario
  
  tema = "animales"
  conjunto = "gacela león tigre hipopótamo elefante"  
  undiccionario = New Diccionario  
  undiccionario.tema = tema
  undiccionario.valores = Split(conjunto, " ")
  
  dictotal.Add(undiccionario.valores, tema)
  
  tema = "frutas"
  conjunto = "pera limón sandía coco fresa"  
  
  undiccionario = New Diccionario
  undiccionario.tema = tema
  undiccionario.valores = Split(conjunto, " ")    
  dictotal.Add(undiccionario.valores, tema)
  
End
 


Por ejemplo para probar el diccionario:
Print dictotal["animales"][1]
 

Se parece bastante a la sintaxis de Python.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Lunes, 15 Julio 2013, 20:42; editado 1 vez 
Shell - 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 Una Esespecie De Diccionario De KeyWords ivanovichenco General 2 Miercoles, 22 Diciembre 2010, 16:07 Ver último mensaje
ivanovichenco
No hay nuevos mensajes Crear Un Diccionario De Datos jousseph Bases de Datos 5 Sabado, 09 Julio 2011, 00:42 Ver último mensaje
jousseph
No hay nuevos mensajes Diccionario RAE imagomundi Aplicaciones/Fragmentos de Código 8 Jueves, 28 May 2015, 07:32 Ver último mensaje
jsbsan
No hay nuevos mensajes Diccionario Libre De La Lengua Española Adrlopgal General 19 Domingo, 17 Junio 2018, 11:02 Ver último mensaje
Grandamakulo
 

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