Anteriormente habíamos visto algunos tipos básicos de datos como los booleanos, enteros y cadenas de texto.
A continuación veremos como utilizar algunos tipos de colecciones que nos ofrece Python.
Listas
Las listas son colecciones de datos ordenadas y son el equivalente a los ArrayList o vectores de Java o C#.
En Python las listas y las colecciones en general pueden almacenar cualquier tipo de dato, como objetos, números, colecciones, etc.
Este es un ejemplo donde podremos ver cómo utilizar las listas:
if __name__ == '__main__': #equivale a public static void main de Java listado = [] #inicializamos una lista print("Todo lo que escribas sera guardado en una lista") while True: dato = raw_input("> "); if( dato=="fin" ): break #se agrega al final de la lista un nuevo elemento listado.append(dato) if listado.__len__()>0: print("Estos son los datos ingresados") for i in listado: #la coma permite imprimir el contenido en # una sola fila como un System.out.print de Java print i , else: print("No se ingreso nada en la lista")
Python posee una característica denominada slicing y que permite seleccionar u obtener una partición de la lista, por ejemplo:
lista = ["h","o","l","a"," ","m","u","n","d","o"] print( lista[2:5] ) #1) imprime ['l', 'a', ' '] print( lista[:4] ) #2) imprime ['h', 'o', 'l', 'a'] print( lista[5:] ) #3) imprime ['m', 'u', 'n', 'd', 'o'] print( lista[:] ) #4) imprime ['h', 'o', 'l', 'a', ' ', 'm', 'u', 'n', 'd', 'o'] print( lista[0:4:2] ) #5) imprime ['h', 'l'] print( lista[::2] ) #6) imprime ['h', 'l', ' ', 'u', 'd'] print( lista[::3] ) #7) imprime ['h', 'a', 'u', 'o']
En el caso '1' se obtiene un fragmento del arreglo desde la posición 2 hasta la 4.
En el caso '2' se imprime el arreglo desde la posición 0 hasta la 3.
En el caso '3' se imprime el arreglo desde la posición 5 hasta la última (9).
En el caso '4' se imprime todo el arreglo.
*cuando no se especifica un número a la izquierda del slicing (:) se toma por defecto la primera posición del arreglo y a la derecha se toma la última posición.
En el caso '5' imprime desde la posición 0 hasta la 3 cada 2 caracteres.
En el caso '6' imprime desde la posición 0 hasta la 9 cada 2 caracteres.
En el caso '7' imprime desde la posición 0 hasta la 9 cada 3 caracteres.
Tuplas
Las tuplas se manejan exactamente igual a las listas, y las características más relevantes que poseen son:
-A diferencia de las listas ([]), las tuplas se inicializan con ().
-Son inmutables, es decir, su contenido no puede ser modificado.
-Tienen tamaño fijo.
-Utilizan menos memoria que las listas.
lista = ["h","o","l","a"," ","m","u","n","d","o"] unaTupla = tuple( lista ) print( unaTupla[2:5] ) #1) imprime ['l', 'a', ' ']
Diccionarios
Los diccionarios son colecciones que permiten relacionar una clave con un valor y son el equivalente a los HashMap de Java.
La principal diferencia entre los diccionarios con las tuplas y listas, es que sus valores no son accedidos a través de un índice, porque no poseen orden (ya que los diccionarios se implementan como tablas hash), sino que mediante su clave utilizando el operador [clave]. Por esta misma razón es que tampoco puede aplicarse slicing sobre estas.
Este es un ejemplo de diccionario:
numeros = {"uno":1, "dos":2, "tres":3, 4:"cuatro", 5:"cinco", 6:"seis"} print( numeros["uno"] ) #1) imprime 1 print( numeros[5] ) #2) imprime cinco print( numeros.keys() ) #3) imprime [4, 5, 6, 'dos', 'tres', 'uno'] print( numeros.values() ) #4) imprime ['cuatro', 'cinco', 'seis', 2, 3, 1]
-En el caso 1 se imprime el valor obtenido de la llave 'uno'.
-En el caso 2 se imprime el valor de la llave '5'.
-En el caso 3 se imprimen todas las llaves del diccionario.
-En el caso 4 se imprimen todos los valores del diccionario.
0 comentarios:
Publicar un comentario