Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: reinstein en 28 de Octubre 2015, 07:56

Título: Matrices Asociativas HashMaps en java equivalencia Crear Maps en Python dict
Publicado por: reinstein en 28 de Octubre 2015, 07:56
Tengo dos clases en java que muestran el tema de matrices asociativas y quiero implementarlo en python... he estado intentando hacerlo con diccionarios en python pero no encuentro la logica... ayuda... es mi primera participacion en este blog saludos...

aqui les muestro el codigo en java que hace referencia a las matrices asociativas en java...  ¿Como seria en python?

Código: [Seleccionar]
import java.util.*;
import java.io.*;
  class Leer {
    public static String dato(){
    String sDato="";
    try{
        //Definir un flujo de caracteres de entrada: flujoE
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader flujoE = new BufferedReader(isr);
    //Leer. La entrada finaliza al pulsar la tecla Entrar...
    sDato = flujoE.readLine();
    }catch(IOException e){
        System.err.println("Error: "+e.getMessage());
    }
    return sDato;// devolver el dato tecleado
    }//fin del metodo dato

    public static float datoFloat(){
    try{
        return Float.parseFloat(dato());
    }catch(NumberFormatException e){
            return Float.NaN;
    }//fin de catch
    }//fin del metodo datoFloat
}//fin de la clase


Código: [Seleccionar]
import java.util.HashMap;
import java.util.Set;
import java.util.Map;
import java.util.Iterator;

public class Histograma {   
    /* Histograna */

  public static void main(String[] args)
  {
    HashMap<Float, Integer> alumno = new  HashMap<Float, Integer>();
   
    System.out.println("Escriba los pesos de los alumnos.\n" +
            "Para terminar escriba \"fin\" y pulse [Entrar]:");
    float peso;
    int contador, i = 0;
    System.out.print("Alumno " + (i++) + ", peso: ");
    peso = Leer.datoFloat();
    while(!Float.isNaN(peso))
    {
      if (peso < 10 || peso > 100)
        // Si se introduce un peso no válido:
        System.out.println("Error: el peso no puede ser menor que 10 ni mayor que 100");
      else
      {
        contador = 0;
        if (alumno.containsKey(peso)){
            contador = alumno.get(peso);
        }//fin del if
            alumno.put(peso, ++contador);
       
      }//fin del else
      System.out.print("Alumno " + (i++) + ", peso: ");
      peso = Leer.datoFloat();
    }//fin del while


    System.out.println("\nPeso  Número de alumnos\n" +
                       "-----------------------");
    Set<Map.Entry<Float, Integer>> a = alumno.entrySet();
    Iterator it = a.iterator();
    Map.Entry<Float, Integer> elem;
    while (it.hasNext())
    {
      elem = (Map.Entry<Float, Integer>)it.next();
      System.out.println(elem.getKey() + "   " + elem.getValue());
    }//fin del while
    }//fin del metodo main
}//fin de la clase
Título: Re:Matrices Asociativas HashMaps en java equivalencia Crear Maps en Python dict
Publicado por: Alex Rodríguez en 30 de Octubre 2015, 09:24
Hola para implementar maps en Python debes usar diccionarios (ver tipo dict https://docs.python.org/2/library/stdtypes.html#dict)

Ejemplo definición en java:

Código: [Seleccionar]
HashMap<String,String> streetno=new HashMap<String,String>();
   streetno.put("1", "Sachin Tendulkar");
   streetno.put("2", "Dravid");
   streetno.put("3","Sehwag");
   streetno.put("4","Laxman");
   streetno.put("5","Kohli")

Equivalencia en python:

Código: [Seleccionar]
streetno = {"1": "Sachine Tendulkar",
            "2": "Dravid",
            "3": "Sehwag",
            "4": "Laxman",
            "5": "Kohli" }

También se puede usar: streetno = dict({"1":"Sachine Tendulkar", "2":"Dravid"})

O también se puede usar: streetno = {}
streetno["1"] = "Sachine Tendulkar"

Saludos